Java集合框架之LinkedHashSet详解

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在Java开发中,集合类是非常常用的一种数据类型。而集合类中的Set集合是一种不允许重复元素的集合。在Set集合中,除了HashSet和TreeSet之外,还有一种集合类叫做LinkedHashSet。本文将会介绍LinkedHashSet的概念,源代码解析,应用场景案例,优缺点分析,类代码方法介绍以及测试用例。

摘要

  LinkedHashSet是一种Set集合类,它是HashSet和LinkedHashMap的结合体。它既有HashSet的快速查找和不允许重复元素的特性,又有LinkedHashMap的有序性和迭代器的快速遍历特性。因此,在需要保持元素顺序的情况下,我们可以使用LinkedHashSet。

LinkedHashSet

简介

  LinkedHashSet是Java集合框架中Set接口的实现类,它继承自HashSet,并且实现了Set接口。LinkedHashSet底层是通过一个由链表和哈希表组成的数据结构来实现的。其中,链表用于保证元素插入的顺序,而哈希表用于保证元素的唯一性。

  与HashSet相比,LinkedHashSet可以保证元素的插入顺序,这是因为LinkedHashSet内部维护了一个链表来记录元素的插入顺序。与TreeSet相比,LinkedHashSet的元素不是按照自然排序或者指定的Comparator排序,而是按照插入顺序排序。

源代码解析

  LinkedHashSet的源代码中,我们可以看到它实现了Set接口,并且继承了HashSet类,HashSet又继承了AbstractSet类。而AbstractSet类实现了Set接口中的一些方法。

LinkedHashSet的构造函数如下:

public LinkedHashSet() {
   
   
        super();
        map = new LinkedHashMap<>();
    }

public LinkedHashSet(int initialCapacity, float loadFactor) {
   
   
        super();
        map = new LinkedHashMap<>(initialCapacity, loadFactor);
    }

public LinkedHashSet(int initialCapacity) {
   
   
        super();
        map = new LinkedHashMap<>(initialCapacity);
    }

public LinkedHashSet(Collection<? extends E> c) {
   
   
        super();
        map = new LinkedHashMap<>(Math.max((int) (c.size(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值