Set接口和常用方法
体系图
Set接口基本介绍
- 无序(添加和去除的顺序不一致),没有索引。
- 不允许重复添加元素,所以最多包含一个Null。
- JDK API中Set接口的实现类有:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ftg3exkJ-1626267631024)(D:\一些文档\面试资料\笔记整理\Java基础\集合\Set接口的实现类.png)]
Set接口的常用方法
和LIst接口一样,Set接口也是Collection接口的子接口,因此,常用方法和Collection接口一样。
Set接口的遍历方式
public class SetMethod_ {
public static void main(String[] args) {
//1. 以 Set 接口的实现类 HashSet 来讨论 Set 接口的方法。
//2. set 接口的实现类的对象,不能存放重复的元素,可以添加一个null。
//3. set 接口对象存放数据是无序的(即添加的顺序和取出的顺序不一致)。
//4. 注意:取出的顺序虽然不是添加的顺序,但是他是固定的。
Set set = new HashSet();
set.add("john");
set.add("lucy");
set.add("john"); //重复的数据
set.add("zhangsan");
set.add("lisa");
set.add("jack");
set.add(null);
set.add(null); //再次添加一个null
}
}
同Collection的遍历方式一样,因为Set接口是Collection接口的子接口。
- 可以使用迭代器。
Iterator iterator = set.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println("obj=" + obj);
}
=========输出结果========
obj=null
obj=zhangsan
obj=lisa
obj=john
obj=lucy
obj=jack
- 增强for。
System.out.println("=========增强for=========");
for (Object o : set) {
System.out.println("o=" + o);
}
=========输出结果========
o=null
o=zhangsan
o=lisa
o=john
o=lucy
o=jac
- 不能使用索引的方式来获取。(因为Set接口没有索引)