1 .Set集合介绍
Collection接口可以存放重复元素,也可以存放不重复元素。List可以存放重复元素,Set就是不重复的元素。通过元素的equals方法,来判断是否为重复元素。
2 HashSet(哈希表)
此类实现了Set接口,由哈希表(实际是HashMap实例)支持。它不保证set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。
特点:无序集合,存储和取出的顺序不同,没有索引,不存储重复元素。代码的编写和ArrayList完全一致。
HashSet特点:
底层数据结构:哈希表(链表和数组的结合体);
存储取出都比较快;
线程不安全,运行速度快;
Set集合取出元素的方式可以采用:迭代器,增强 for,转为List遍历
// Creating an empty HashSet
HashSet<SInteger> set = new HashSet<Integer>();
// Use add() method to add elements into the Set
set.add(1);
set.add(2);
set.add(3);
set.add(4);
set.add(5);
迭代器遍历
//创建一个迭代器
Iterator iterator = set.iterator();
//输出迭代之后的值
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
将Set转换成List,遍历
List<Integer> list = new ArrayList<>(set);
for(int i : list){
System.out.println(i);
}
增强for循环,直接遍历set
for(int i : set){
System.out.println(i);
}
欢迎评论区纠正补充!