首页
学习
活动
专区
圈层
工具
发布

java的Set(二)

除了 Set 接口提供的方法外,Java 中还提供了三种常见的 Set 实现类,分别是 HashSetLinkedHashSetTreeSet

HashSet

HashSet 是基于哈希表实现的集合,它不保证元素的顺序。HashSet 通过将元素的 hashCode() 值映射到一个数组索引来快速查找元素,因此在添加元素时需要重写元素的 hashCode()equals() 方法,以保证元素的唯一性。

下面是一个 HashSet 的示例:

代码语言:javascript
复制
javaCopy codeimport java.util.HashSet;
import java.util.Set;

public class HashSetExample {
    public static void main(String[] args) {
        // 创建一个 HashSet 对象
        Set<Integer> set = new HashSet<Integer>();

        // 添加元素
        set.add(5);
        set.add(2);
        set.add(8);
        set.add(1);

        // 输出元素个数
        System.out.println("元素个数:" + set.size());

        // 遍历元素
        for (Integer num : set) {
            System.out.println(num);
        }

        // 判断是否包含元素
        System.out.println("是否包含 5:" + set.contains(5));

        // 删除元素
        set.remove(2);

        // 清空集合
        set.clear();
    }
}

在上面的代码中,首先创建了一个 HashSet 对象,然后使用 add() 方法添加元素,由于 HashSet 是无序的,所以输出的结果是不确定的。使用 contains() 方法可以判断集合中是否包含指定的元素,使用 remove() 方法可以删除元素,使用 clear() 方法可以清空集合。最后使用 for-each 循环遍历集合中的元素。

输出结果如下:

代码语言:javascript
复制
arduinoCopy code元素个数:4
1
2
5
8
是否包含 5:true

LinkedHashSet

LinkedHashSet 是基于哈希表和链表实现的集合,它保证元素的顺序与添加顺序一致。LinkedHashSetHashSet 的基础上使用链表来维护元素的插入顺序,因此在添加元素时也需要重写元素的 hashCode()equals() 方法,以保证元素的唯一性。

下面是一个 LinkedHashSet 的示例:

代码语言:javascript
复制
import java.util.LinkedHashSet;
import java.util.Set;

public class LinkedHashSetExample {
    public static void main(String[] args) {
        // 创建一个 LinkedHashSet 对象
        Set<Integer> set = new LinkedHashSet<Integer>();

        // 添加元素
        set.add(5);
        set.add(2);
        set.add(8);
        set.add(1);

        // 输出元素个数
        System.out.println("元素个数:" + set.size());

        // 遍历元素
        for (Integer num : set) {
            System.out.println(num);
        }

        // 判断是否包含元素
        System.out.println("是否包含 5:" + set.contains(5));

        // 删除元素
        set.remove(2);

        // 清空集合
        set.clear();
    }
}

在上面的代码中,首先创建了一个 LinkedHashSet 对象,然后使用 add() 方法添加元素,由于 LinkedHashSet 保证元素的顺序与添加顺序一致,所以输出的结果是按照添加顺序排列的。使用 contains() 方法可以判断集合中是否包含指定的元素,使用 remove() 方法可以删除元素,使用 clear() 方法可以清空集合。最后使用 for-each 循环遍历集合中的元素。

输出结果如下:

代码语言:javascript
复制
元素个数:4
5
2
8
1
是否包含 5:true
下一篇
举报
领券