当前位置: 代码迷 >> 综合 >> Java 集合 (13) -- LinkedHashSet 类
  详细解决方案

Java 集合 (13) -- LinkedHashSet 类

热度:25   发布时间:2023-12-16 13:19:51.0

文章目录

    • 1. 简介
    • 2. 继承体系
    • 3. 构造器
    • 4. 常用方法

1. 简介

public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneable, java.io.Serializable {
    }

LinkedHashSet 是 HashSet 的一个 扩展版本,HashSet 并不管什么顺序,而 LinkedHashSet 会维护一个 插入顺序。HashSet 内部使用 HashMap 的键来存储它的元素,而 LinkedHashSet 内部使用 LinkedHashMap 的键来存储和处理它的元素,LinkedHashSet 并没有自己的方法,所有的方法都继承自它的父类 HashSet。

2. 继承体系

在这里插入图片描述

3. 构造器

  1. 传入容量和装载因子
    public LinkedHashSet(int initialCapacity, float loadFactor) {
          super(initialCapacity, loadFactor, true);
    }
    
  2. 只传入容量, 装载因子默认为 0.75
    public LinkedHashSet(int initialCapacity) {
          super(initialCapacity, .75f, true);
    }
    
  3. 使用默认容量16, 默认装载因子0.75
    public LinkedHashSet() {
          super(16, .75f, true);
    }
    
  4. 将集合c中的所有元素添加到LinkedHashSet中
    public LinkedHashSet(Collection<? extends E> c) {
          super(Math.max(2*c.size(), 11), .75f, true);addAll(c);
    }
    

4. 常用方法

  1. public Spliterator spliterator():可分割的迭代器, 主要用于多线程并行迭代处理时使用
    public Spliterator<E> spliterator() {
          return Spliterators.spliterator(this, Spliterator.DISTINCT | Spliterator.ORDERED);
    }
    
  相关解决方案