📜  Java LinkedHashSet类(1)

📅  最后修改于: 2023-12-03 15:15:56.846000             🧑  作者: Mango

Java LinkedHashSet类

LinkedHashSet类是Java集合框架提供的一种集合类型,它继承了HashSet类并实现了Set接口。LinkedHashSet类与HashSet类的不同之处在于,它保留了元素的插入顺序。这种保留顺序的方式是通过链接每个元素的指针实现的,也就是说,LinkedHashSet是一个链表的结构。由于它使用链表结构而不是哈希表结构,因此LinkedHashSet的速度不如HashSet快,但是它允许我们按照元素插入顺序来迭代集合。

特点
  1. LinkedHashSet是实现了Set接口的集合类,它继承了HashSet类。
  2. LinkedHashSet是一个链表的结构,它保留了元素的插入顺序。由于使用链表结构,所以速度不如HashSet快。
  3. LinkedHashSet允许我们按照元素插入顺序来迭代集合。
构造方法

LinkedHashSet类有以下的构造方法:

  • public LinkedHashSet(): 创建一个空的LinkedHashSet集合。
  • public LinkedHashSet(Collection<? extends E> c): 创建一个包含指定集合中的元素的LinkedHashSet集合。
  • public LinkedHashSet(int initialCapacity): 创建具有指定初始容量的空的LinkedHashSet集合。
  • public LinkedHashSet(int initialCapacity, float loadFactor): 创建具有指定初始容量和负载因子的空的LinkedHashSet集合。
示例代码

以下是LinkedHashSet的一些常用操作:

import java.util.LinkedHashSet;

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

        // 添加元素
        linkedHashSet.add("A");
        linkedHashSet.add("B");
        linkedHashSet.add("C");
        linkedHashSet.add("D");
        linkedHashSet.add("E");

        // 输出元素
        System.out.println(linkedHashSet);

        // 迭代元素
        for (String element : linkedHashSet) {
            System.out.println(element);
        }

        // 判断元素是否存在
        System.out.println(linkedHashSet.contains("A"));

        // 删除元素
        linkedHashSet.remove("D");

        // 输出元素
        System.out.println(linkedHashSet);

        // 清空元素
        linkedHashSet.clear();

        // 判断元素是否为空
        System.out.println(linkedHashSet.isEmpty());
    }
}

输出结果:

[A, B, C, D, E] 
A
B
C
D
E
true
[A, B, C, E] 
true

在这个例子中,我们首先创建了一个LinkedHashSet对象,并使用add()方法添加了一些元素。然后,我们使用System.out.println()打印了整个LinkedHashSet对象,它保留了元素的插入顺序。接着,我们使用for-each循环迭代了集合中的所有元素,并使用contains()方法检查某个元素是否存在于集合中。最后,我们使用remove()方法删除集合中的一个元素,并使用clear()方法清空集合。