Skip to content

Set 接口是 Java 集合框架中的一种数据结构,它表示一个不包含重复元素的集合。与 List 接口不同,Set 接口中的元素没有特定的顺序。

以下是一些 Set 接口的常见实现类:

  • HashSet: 使用哈希表实现,提供快速的插入、删除和查找操作。不保证元素的顺序。
  • TreeSet: 使用红黑树(自平衡二叉搜索树)实现,按照元素的自然顺序进行排序,或者通过提供的比较器进行排序。
  • LinkedHashSet: 使用链表和哈希表实现,维护元素的插入顺序,性能略低于HashSet,但迭代遍历时有更好的性能。

下面是一个简单示例代码,展示如何使用HashSetTreeSet

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

public class SetExample {
    public static void main(String[] args) {
        // 使用 HashSet
        Set<String> hashSet = new HashSet<>();
        hashSet.add("元素1");
        hashSet.add("元素2");
        hashSet.add("元素3");

        System.out.println("HashSet 中的元素:");
        for (String element : hashSet) {
            System.out.println(element);
        }

        // 使用 TreeSet
        Set<Integer> treeSet = new TreeSet<>();
        treeSet.add(5);
        treeSet.add(2);
        treeSet.add(8);

        System.out.println("TreeSet 中的元素:");
        for (Integer element : treeSet) {
            System.out.println(element);
        }
    }
}

在上面的示例中,我们首先创建了一个HashSet实例,并使用add方法向集合中添加一些元素。然后,我们使用增强型的for循环遍历了HashSet中的所有元素,并将它们打印出来。

接下来,我们创建了一个TreeSet实例,并向其中添加一些整数元素。由于TreeSet会对元素进行排序,所以在遍历时,元素按照自然顺序(数字大小)进行输出。