Java集合之Set
2021/7/10 9:05:43
本文主要是介绍Java集合之Set,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、Set是什么?
- Set的特点
- 二、HashSet
- 1.HashSet特点
- 2.HashSet常用方法
- 例题
- TreeSet
- 1.TreeSet的特点
一、Set是什么?
Public interface Set <E>
<E> 表示的泛型 -----容器中存放的元素的类型 —指代的是引用数据类型
基本数据类型不能当作泛型来使用,而是要使用基本数据类型的封装类
Set的特点
不能存在重复的元素(hashcode相同的元素叫重复的元素)
元素添加没有顺序
二、HashSet
1.HashSet特点
- 不能存在重复元素
- 底层结构是哈希表(HashTable)
- 无序----无索引
- 可以存放null元素
- 牺牲空间换时间 (桶)----运行速度较快
- 扩容和加载因子 需要根据hashMap的原理来决定
2.HashSet常用方法
addAll() -----并集
containsAll()-----子集
removeAll() -----差集
retainAll() ------交集
例题
String score[] s =
{“A,语文,98”,“B,数学,87”,“B,英语,56”
“C,语文,66” “G,数学,90”}
name[“A“ B C D E F G]
问哪些人没有参加考试
public class SetPr { public static void main(String[] args) { String [] score = {"A,语文,98","B,数学,87","B,英语,56","C,语文,66","G,数学,90"}; String [] name = {"A","B","C","D","E","F","G"}; Set<Character> s1 = new HashSet<Character>(); Set<Character> s2 = new HashSet<Character>(); for (int i = 0; i < name.length; i++)//添加元素 s1.add(name[i].charAt(0)); for (int i = 0; i < score.length; i++) s2.add(score[i].charAt(0)); s1.removeAll(s2);//求有成绩的和所有人求差集,求出来的即是没有来考试的 Iterator<Character> iterator = s1.iterator(); while (iterator.hasNext()) System.out.println(iterator.next() + "没来考试!!!"); } }
TreeSet
1.TreeSet的特点
- 底层结构是二叉树结构
- 二叉树认为能够存放在树形结构中的元素都是有序元素
- 不允许存放重复的元素
用法与HasSet基本类似
public class TreeSetTest { public static void main(String[] args) { Set<Integer> set = new TreeSet<Integer>(); set.add(7); set.add(2); set.add(3); set.add(6); set.add(5); set.add(0); set.add(0); System.out.println(set); } }
这篇关于Java集合之Set的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26手写消息中间件:从零开始的指南
- 2024-11-26Java语音识别项目资料:新手入门教程
- 2024-11-26JAVA语音识别项目资料:新手入门教程
- 2024-11-26Java语音识别项目资料:入门与实践指南
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料入门教程
- 2024-11-26Java云原生资料:新手入门教程
- 2024-11-25Java创意资料:新手入门的创意学习指南
- 2024-11-25JAVA对接阿里云智能语音服务资料详解:新手入门指南
- 2024-11-25Java对接阿里云智能语音服务资料详解