一、简单介绍

  • 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