1、Set 接口和常用方法
1.1、Set 接口基本介绍
(1)Set接口的实现子类的元素是无序的,即添加和去除的顺序不同,但是一旦顺序确定了之后取出的顺序就不会改变,没有索引
(2)不允许元素重复,所以最多能包含一个null
1.2、Set 接口的常用方法
和 List 接口一样, Set 接口也是 Collection 的子接口,因此,常用方法和 Collection 接口一样.
1.3、Set 接口的遍历方式
通Collection的遍历方式一样,因为Set是Collection的子接口
(1)迭代器遍历
(2)增强for循环
注意:因为Set接口的实现子类没有索引,所以不能想List一样使用索引的方式来遍历或获取元素
1.4、Set 接口的常用方法举例
package com.francis.collenction_.set_;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* @author Francis
* @create 2021-09-20 22:18
*/
public class SetMethod {
public static void main(String[] args) {
//1. 以 Set 接口的实现类 HashSet 来讲解 Set 接口的方法
//2. set 接口的实现类的对象(Set 接口对象), 不能存放重复的元素, 可以添加一个 null
//3. set 接口对象存放数据是无序(即添加的顺序和取出的顺序不一致)
//4. 注意:取出的顺序的顺序虽然不是添加的顺序,但是他的固定.
Set set = new HashSet();
set.add("john");
set.add("lucy");
set.add("john");//重复
set.add("jack");
set.add("hsp");
set.add("mary");
set.add(null);//
set.add(null);//再次添加 null
for (int i = 0; i < 10; i++) {
System.out.println("set=" + set);
}
//遍历
//方式 1: 使用迭代器
System.out.println("=====使用迭代器====");
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println("obj=" + obj);
}
set.remove(null);
//方式 2: 增强 for
System.out.println("=====增强 for====");
for (Object o : set) {
System.out.println("o=" + o);
}
//set 接口对象,不能通过索引来获取
}
}
2、Set 接口实现类-HashSet
2.1、HashSet 的全面说明
(1)HashSet实现了Set接口
(2)HashSet实际上是HashMap