Java HashSet集合的子类LinkedHashSet集合
说明
HashSet保证元素的唯一性,可是元素存放进去是没有顺序的。
在HashSet下面有一个子类java.util.LinkedHashSet,它是 链表 + 哈希表(数组+链表 或者 数组+红黑树)组合的一个数据结构。
即相对HashSet而言,多了一个链表结构。多了的那条链表,用来记录元素的存储顺序,保证元素有序
举例
HashSet集合例子1
import java.util.HashSet; public class DemoLinkedHashSet {
public static void main(String[] args) {
HashSet<String> hashSet = new HashSet<>(); hashSet.add("https");
hashSet.add("www");
hashSet.add("cnblogs");
hashSet.add("com");
System.out.println(hashSet);
}
}
输出结果:
[com, cnblogs, www, https]
HashSet集合例子2
将例子1中添加元素的顺序调换一下
import java.util.HashSet; public class DemoLinkedHashSet {
public static void main(String[] args) {
HashSet<String> hashSet = new HashSet<>(); hashSet.add("cnblogs");
hashSet.add("com");
hashSet.add("https");
hashSet.add("www");
System.out.println(hashSet);
}
}
输出结果:
[com, cnblogs, www, https]
可以看出,HashSet集合存储的元素是无序的。
LinkedHashSet集合例子1
import java.util.LinkedHashSet; public class DemoLinkedHashSet {
public static void main(String[] args) {
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(); linkedHashSet.add("https");
linkedHashSet.add("www");
linkedHashSet.add("cnblogs");
linkedHashSet.add("com");
System.out.println(linkedHashSet);
}
}
输出结果:
[https, www, cnblogs, com]
LinkedHashSet集合例子2
将例子1中添加元素的顺序调换一下
import java.util.LinkedHashSet; public class DemoLinkedHashSet02 {
public static void main(String[] args) {
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>(); linkedHashSet.add("cnblogs");
linkedHashSet.add("com");
linkedHashSet.add("https");
linkedHashSet.add("www");
System.out.println(linkedHashSet);
}
}
输出结果:
[cnblogs, com, https, www]
可以看出,LinkedHashSet集合存储的元素是有序的。
Java HashSet集合的子类LinkedHashSet集合的更多相关文章
- Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)
Java集合概述.Set集合(HashSet类.LinkedHashSet类.TreeSet类.EnumSet类) 1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指 ...
- Java笔记:Java集合概述和Set集合
本文主要是Java集合的概述和Set集合 1.Java集合概述 1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组 ...
- Java【第十篇】集合
Java 集合概述 Java 集合就像一种容器,可以把多个对象的引用放入容器中.Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组Java 集合可分为 Set.List ...
- Java集合详解7:HashSet,TreeSet与LinkedHashSet
今天我们来探索一下HashSet,TreeSet与LinkedHashSet的基本原理与源码实现,由于这三个set都是基于之前文章的三个map进行实现的,所以推荐大家先看一下前面有关map的文章,结合 ...
- Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
<Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...
- Java集合框架之LinkedHashSet
简述 LinkedHashSet底层使用 LinkedHashMap 来保存所有元素,它继承自 HashSet,其所有的方法操作上又与 HashSet 相同,因此 LinkedHashSet 的实现上 ...
- HashSet存储自定义类型元素和LinkedHashSet集合
HashSet集合存储自定义类型元素 HashSet存储自定义类型元素 set集合报错元素唯一: ~存储的元素(String,Integer,-Student,Person-)必须重写hashCode ...
- HashSet存储自定义数据类型和LinkedHashSet集合
HashSet存储自定义数据类型 public class Test{ /** * HashSet存储自定义数据类型 * set集合保证元素唯一:存储的元素(String,Integer,Studen ...
- Java基础学习笔记十五 集合、迭代器、泛型
Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数组既然都 ...
随机推荐
- hsqldb使用
1 hsqldb介绍 HyperSQL DataBase 是一个现代的关系数据库管理软件,比较彻底遵从SQL:2008标准和JDBC4规范.支持SQL:2008标准所以的核心特性和很多的可选特性. H ...
- H3C NAT Server
- python模块之configparser模块
configparser模块:用于按一定格式创建配置文件 创建 import configparser config = configparser.ConfigParser() config['DEF ...
- P1011 圆柱体的表面积
题目描述 输入底面半径 \(r\) 和高 \(h\) ,输出圆柱体的表面积,保留 \(3\) 位小数. 输入格式 输入包含两个实数 \(r,h(1 \le r,h \le 1000)\) 且保证输入的 ...
- springBoot中使用使用junit测试文件上传,以及文件下载接口编写
本篇文章将介绍如何使junit在springBoot中测试文件的上传,首先先阅读如何在springBoot中进行接口测试. 文件上传操作测试代码 import org.junit.Before; im ...
- LuoguP3045牛券Cow Coupons
LuoguP3045 [USACO12FEB]牛券Cow Coupons 果然我贪心能力还是太差了 ZR讲过的原题我回来对做法没有一丁点印象 有时候有这样一种题目 每个数有两种不同的价值 你可以选择价 ...
- Java逻辑思维训练题
两柱香问题题目:有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切. 答案:将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半 ...
- Android 隐藏顶部菜单栏
Android 隐藏状态栏 在Activity中: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 在fragmen ...
- 前端——JS
目录 JavaScript概述 ECMAScript和JavaScript的关系 ECMAScript的历史 JavaScript引入方式 Script标签内写代码 引入额外的JS文件 JavaScr ...
- 闯荡Linux帝国:nginx的创业故事
前情回顾: NextStep帝国推出的web服务,迅速风靡比特宇宙,各星系帝国均蠢蠢欲动,想在这一波浪潮中掘一桶金. 详情参见:万维网的诞生 初出茅庐 小马哥和他的小伙伴小黑.大黄来到陌生的Linux ...