📜  Java Set接口

📅  最后修改于: 2020-09-26 15:26:04             🧑  作者: Mango

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

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

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


实现Set的类

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

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

  • 哈希集
  • 链接哈希集
  • 枚举集
  • 树集

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

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


扩展Set的接口

这些子接口还扩展了Set接口:

  • SortedSet
  • 导航集

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


如何使用Set?

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

// Set implementation using HashSet
Set animals = new HashSet<>();

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


设置方法

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

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

  • add() -将指定的元素添加到集合中
  • addAll() -将指定集合的所有元素添加到集合中
  • iterator() -返回一个迭代器,该迭代器可用于顺序访问集合中的元素
  • remove() -从集合中移除指定的元素
  • removeAll() -从存在于另一个指定集合中的集合中删除所有元素
  • keepAll() -保留集合中所有还存在于另一个指定集合中的所有元素
  • clear() -从集合中删除所有元素
  • size() -返回集合的长度(元素个数)
  • toArray() -返回包含集合中所有元素的数组
  • contains() -如果集合包含指定的元素,则返回true
  • containsAll() -如果集合包含指定集合的所有元素,则返回true
  • hashCode() -返回哈希码值(集合中元素的地址)

要了解Set接口的更多方法,请访问Java Set(Java官方文档)。


设定作业

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

  • 联合 -要获得两个集合xy的联合,我们可以使用x.addAll(y)
  • 交集 -要获得两个集合xy的交集,我们可以使用x.retainAll(y)
  • 子集 -检查x是否是y的子集,我们可以使用y.containsAll(x)

Set接口的实现

1.实现HashSet类

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

class Main {

    public static void main(String[] args) {
        // Creating a set using the HashSet class
        Set set1 = new HashSet<>();

        // Add elements to the set1
        set1.add(2);
        set1.add(3);
        System.out.println("Set1: " + set1);

        // Creating another set using the HashSet class
        Set set2 = new HashSet<>();

        // Add elements
        set2.add(1);
        set2.add(2);
        System.out.println("Set2: " + set2);

        // Union of two sets
        set2.addAll(set1);
        System.out.println("Union is: " + set2);
    }
}

输出

Set1: [2, 3]
Set2: [1, 2]
Union is: [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) {
        // Creating a set using the TreeSet class
        Set numbers = new TreeSet<>();

        // Add elements to the set
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        System.out.println("Set using TreeSet: " + numbers);

        // Access Elements using iterator()
        System.out.print("Accessing elements using iterator(): ");
        Iterator iterate = numbers.iterator();
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }

    }
}

输出

Set using TreeSet: [1, 2, 3]
Accessing elements using iterator(): 1, 2, 3,

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


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