Set接口
List接口是Collection的子接口
- 特点:无序、无下标、元素不可重复。
- 方法:全部继承自Collection中的方法。
1. 常用方法
可参考List常用方法
2. 使用
Set<String> set = new HashSet<>();
// 1.添加数据
set.add("tang");
set.add("he");
set.add("yu");
System.out.println("数据个数:" + set.size());
System.out.println(set.toString());// 无序输出
// 2.删除数据
/*
* set.remove("tang"); System.out.println(set.toString());
*/
// 3.遍历【重点】
// 3.1 使用增强for
for (String string : set) {
System.out.println(string);
}
// 3.2 使用迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// 4.判断
System.out.println(set.contains("tang"));
System.out.println(set.isEmpty());
3. 实现类
HashSet
- 底层:数组+链表[+红黑树(JDK1.8+)]
- 基于HashCode计算元素存放位置。
- 当存入元素的哈希码相同时,会调用equals进行确认,如结果为true,则拒绝后者存入。
TreeSet
- 基于排序顺序实现不重复。
- 实现了SortedSet接口,对集合元素自动排序。
- 元素对象的类型必须实现Comparable接口,指定排序规则。
- 通过CompareTo方法确定是否为重复元素。