Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java Set 接口

在本教程中,我们将学习Java中的Set接口及其方法。

Java Collections框架的Set接口提供Java中数学集合的功能。 它继承了Collection接口。

与List接口不同,Set集合不能包含重复的元素。

实现Set的类

由于Set是接口,因此无法从中创建对象。

为了使用Set接口的功能,我们可以使用以下类:

这些类在Collections框架中定义并实现Set接口。

接口SortedSet和NavigableSet扩展了Set接口。

继承Set的接口

该Set接口也扩展这些子接口:

EnumSet,HashSet,LinkedHastSet和TreeSet类实现Set接口。

如何使用Set?

在Java中,必须导入java.util.Set包才能使用Set。

//使用HashSet实现Set
Set<String> animals = new HashSet<>();

在这里,我们创建了一个Set称为animals。我们已经使用HashSet该类来实现Set接口。

Set的方法

Set接口包含Collection接口的所有方法。 这是因为Collection是Set的超级接口。

Set接口中还提供了Collection接口的一些常用方法:

  • add() - 将指定的元素添加到集合中

  • addAll() - 将指定集合的所有元素添加到集合中

  • iterator() -返回一个迭代器,该迭代器可用于顺序访问集合中的元素

  • remove() - 从集合中移除指定的元素

  • removeAll() - 从存在于另一个指定集合中的集合中删除所有元素

  • keepAll()  -保留集合中所有还存在于另一个指定集合中的所有元素

  • clear() - 从集合中删除所有元素

  • size() - 返回集合的长度(元素数)

  • toArray() - 返回包含集合中所有元素的数组

  • contains() -  如果集合包含指定的元素,则返回true

  • containsAll() - 如果集合包含指定集合的所有元素,则返回true

  • hashCode() -返回哈希码值(集合中元素的地址)

Set集合运算

Java Set接口允许我们执行基本的数学集合运算,例如并集,交集和子集。

  • Union - 为了得到两个集合x和y的并集,我们可以使用x.addAll(y)

  • Intersection - 要获得两个集合x和y的交集,我们可以使用x.retainAll(y)

  • Subset - 要检查x是否是y的子集,我们可以使用y.containsAll(x)

Set接口的实现

1.实现HashSet类

import java.util.Set;
import java.util.HashSet;

class Main {

    public static void main(String[] args) {
        //使用HashSet类创建集合
        Set<Integer> set1 = new HashSet<>();

        //将元素添加到set1
        set1.add(2);
        set1.add(3);
        System.out.println("Set1: " + set1);

        //使用HashSet类创建另一个集合
        Set<Integer> set2 = new HashSet<>();

        //添加元素
        set2.add(1);
        set2.add(2);
        System.out.println("Set2: " + set2);

        //两个集合的并集
        set2.addAll(set1);
        System.out.println("并集是: " + set2);
    }
}

输出结果

Set1: [2, 3]
Set2: [1, 2]
并集是: [1, 2, 3]

要了解更多信息HashSet,请访问Java HashSet

2.实现TreeSet类

import java.util.Set;
import java.util.TreeSet;
import java.util.Iterator;

class Main {

    public static void main(String[] args) {
        //使用TreeSet类创建集合
        Set<Integer> numbers = new TreeSet<>();

        // 将元素添加到set集合
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        System.out.println("TreeSet: " + numbers);

        //使用iterator()访问元素
        System.out.print("使用iterator()访问元素: ");
        Iterator<Integer> iterate = numbers.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }

    }
}

输出结果

TreeSet: [1, 2, 3]
使用iterator()访问元素: 1, 2, 3,

要了解更多信息TreeSet,请访问Java TreeSet

现在我们知道Set是什么,在接下来的教程中,我们将在EnumSet,HashSet,LinkedHashSet和TreeSet等类中看到其实现。