一、简单介绍
- Set 集合是由一串无序的,不能重复的相同类型元素构成的集合。
- List集合中的元素是有序的、可重复的,而Set集合中的元素是无序的、不能重复的。List集合强调的是有序,Set集合强调的是不重复。当不考虑顺序,且没有重复元素时, Set集合和List集合可以互相替换的。
二、常用方法
Set 接口也继承自 Collection 接口,Set 接口中大部分都是继承自 Collection 接口,这些方法如下。
1. 操作元素
- add(Object element):在 Set 集合的尾部添加指定的元素。该方法是从 Collection 集合继承过了的。
- remove(Object element):如果 Set 集合中存在指定元素,该方法是从 Collection 集合继承过了的。
- clear():从 Set 集合中移除所有元素。该方法是从 Collection 集合继承过了的。
2. 判断元素
- isEmpty():判断 Set 集合中是否有元素,没有返回 true,有返回 false。该方法是 从 Collection
集合继承过了的。 - contains(Object element):判断 Set 集合中是否包含指定元素,包含返回 true, 不包含返回
false。该方法是从 Collection 集合继承过了的。
3. 其他
- iterator():返回迭代器(Iterator)对象,迭代器对象用于遍历集合。该方法是从 Collection 集合继承下来的。
- size():返回 Set 集合中的元素数,返回值是 int 类型。该方法是从 Collection 集 合继承下来的。
三、遍历集合
- Set 集合中的元素由于没有序号,所以不能使用 for 循环进行遍历,但可以使用 for-each循环和迭代器进行遍历。事实上这两种遍历方法也是继承自 Collection 集合,也就是说所有的 Collection集合类型都有这两种遍历方式。
四、代码实例:
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HelloWorld2 {
public static void main(String[] args) {
Set set=new HashSet();
String b="B";
// 向集合中添加元素
set.add("A");
set.add(b);
set.add("C");
set.add(b);
set.add("D");
set.add("E");
// 1.使用for-each循环遍历
System.out.println("--1.使用for-each循环遍历--");
for (Object item : set) {
String s = (String) item;
System.out.println("读取集合元素: " + s);
}
// 2.使用迭代器遍历
System.out.println("--2.使用迭代器遍历--");
Iterator it = set.iterator();
while (it.hasNext()) {
Object item = it.next();
String s = (String) item;
System.out.println("读取集合元素: " + s);
}
// 打印集合元素个数
System.out.println("集合size = " + set.size());
// 打印集合
System.out.println(set);
// 删除集合中第一个"B"元素
set.remove(b);
// 判断集合中是否包含"B"元素
System.out.println("是否包含\"B\":" + set.contains(b));
// 判断集合是否为空
System.out.println("set集合是空的:" + set.isEmpty());
// 清空集合
set.clear();
System.out.println(set);
}
}
--1.使用for-each循环遍历--
读取集合元素: D
读取集合元素: E
读取集合元素: A
读取集合元素: B
读取集合元素: C
--2.使用迭代器遍历--
读取集合元素: D
读取集合元素: E
读取集合元素: A
读取集合元素: B
读取集合元素: C
集合size = 5
[D, E, A, B, C]
是否包含"B":false
set集合是空的:false
[]
Process finished with exit code 0