Set集合是是由一串无序的、不能重复的相同类型元素构成的集合,因为存储数据的时候要先判断其元素的hashCode值,不一样再存储。
1.Set集合特点
1)Set集合是Collection集合的子类。
2)不包含重复的元素的集合。
3)没有带索引的方法,所以不能用普通的for循环遍历。
2.Set常用方法
1)操作元素
add(Object element):在Set集合的尾部添加指定的元素。
remove(Object element):如果Set集合中存在指定元素,则从Set集合中移除该元素。
clear():从Set集合中移除所有元素。
2)判断元素
isEmpty():判断Set集合中是否有元素。没有返回true,有返回false。
contains(Object element):判断Set集合中是否包含指定元素,包含返回true,不包含返回false。
3)其它方法
iterator():返回迭代器(Iterator)对象,迭代器对象用于遍历集合。
size():返回Set集合中的元素数,返回值是int类型。
例如:
import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) { Set set = new HashSet(); String b = "B"; //向集合中添加元素 set.add("A"); set.add("b"); set.add("C"); set.add("b"); set.add("D"); set.add("b"); set.add("E"); //打印集合元素个数 System.out.println("集合size = " + set.size()); //打印集合 System.out.println(set); //移出集合中第一个“B”元素 set.remove(b); //判断集合中是否包含“B”元素 System.out.println("是否包含\"B\":" + set.contains(b)); //判断集合是否为空 System.out.println("set集合是空的:" + set.isEmpty()); //清空集合 set.clear(); System.out.println(set); } }
运行结果如下:
集合size = 5 [A, b, C, D, E] 是否包含"B":false set集合是空的:false []
3.哈希值(hashCode)
哈希值是JDK根据u第项的地址或者数字运算出来的int类的数值,Object类中有一个方式可以获取哈希值,public int hashCode();返回哈希值。
对象哈希值的特点如下:
1)同一个对象多次调用和hashCode()方法返回的哈希值是相同的。
2)默认情况下,不同对象的哈希值是不同的,但可以通过重写hashCode方法使得哈希值相同。
注意:有不一样的字符串的哈希值也有一样,因为String重写了hashCode方法,比如“重地”和“通话”,哈希值都是1179395。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程