一、Set介绍
无序的,不可重复
1)新增功能:static Set of(E… elements) 返回包含任意数量元素的不可修改集。
其他方法从Collection继承
//新增
Set<Integer> set2 = Set.of(3,2,5,4,2,1);
System.out.println(set2);
//不可变
set2.remove(3);
System.out.println(set2);
2)遍历方式:foreach iterator
Set<String> set = new HashSet<>();
//去重 无序
set.add("bcd");
set.add("abc");
set.add("abc");
set.add("bc");
set.add("ab");
System.out.println(set);
//遍历方式
//foreach
for (String str :set){
System.out.println(str);
}
//Iterator
Iterator<String> it = set.iterator();
while (it.hasNext()){
System.out.println(set);
}
二、HashSet实现类
底层由HashMap维护的 无序的,不可重复
1.概述
1)底层结构: 哈希表HashMap(数组+链表+红黑树) 无序,去重
2)应用场景:存储数据由单个值决定的情况下,想要去重的情况下,适合使用HashSet
3)新增内容:无新增方法
2.练习
定义一个HashSet集合,存储自定义引用数据类型数据,是否对象根据成员内容去重
public class Class02_HashSet {
public static void main(String[] args) {
HashSet<Person> set = new HashSet<>