LinkedHashSet 详细分析

在这里插入图片描述

LinkedHashSet

Set接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashSet的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。这个链表定义了迭代顺序,即元素插入集合的顺序(插入顺序)。请注意,如果将元素重新插入集合中,则插入顺序**不受影响

LinkedHashSet底层使用LinkedHashMap存储元素。

LinkedHashSet是有序的,它是按照插入顺序排序的。

 public LinkedHashSet() {
        super(16, .75f, true);
    }
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
        map = new LinkedHashMap<>(initialCapacity, loadFactor);
    }

LinkedHashSet中没有定义如添加、删除等方法,调用的都是父类HashSet中的方法

不支持按访问顺序访问,只能按插入顺序访问。

用法

import java.util.*;
public class Test {
    public static void main(String[] args) {
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        set.add(3);
        set.add(1);
        System.out.println(set.toString());

    }

猜你喜欢

转载自blog.csdn.net/qq_15604349/article/details/124866760