[Java数据结构]HashSet,LinkedHashSet,TreeeSet
Java中Set表示一个不包括重复元素的集合,它有HashSet,LinkedHashSet,TreeeSet三种常用实现。
HashSet是Set的最常用实现,它常被用来清除重复元素。
例程:
Set<String> filterSet=new HashSet<String>();
filterSet.add("b");
filterSet.add("b");
filterSet.add("c");
filterSet.add("c");
filterSet.add("a");
filterSet.add("a");
filterSet.add("aa");
filterSet.add("1");
filterSet.add("3");
filterSet.add("s");
for(String str:filterSet) {
System.out.println(str);
}
输出:
aa
a
1
b
c
3
s
从上面我们可以看出,HashSet能清除掉重复元素,但不能保持插入顺序,也不会自动排序。
LinkedHashSet不但能清除重复,而且能保持元素的插入顺序。
Set<String> filterSortSet=new LinkedHashSet<String>();
filterSortSet.add("d");
filterSortSet.add("b");
filterSortSet.add("c");
filterSortSet.add("c");
filterSortSet.add("a");
filterSortSet.add("a");
filterSortSet.add("1");
filterSortSet.add("1");
filterSortSet.add("3");
filterSortSet.add("s"); for(String str:filterSortSet) {
System.out.println(str);
}
输出:
d
b
c
a
1
3
s
TreeSet也能清除重复,且内部自动排序。
例程:
Set<String> filterSortSet=new TreeSet<String>();
filterSortSet.add("d");
filterSortSet.add("b");
filterSortSet.add("c");
filterSortSet.add("c");
filterSortSet.add("a");
filterSortSet.add("a");
filterSortSet.add("1");
filterSortSet.add("1");
filterSortSet.add("3");
filterSortSet.add("s"); for(String str:filterSortSet) {
System.out.println(str);
}
输出:
1
3
a
b
c
d
s
--END-- 2019-12-24 09:38
[Java数据结构]HashSet,LinkedHashSet,TreeeSet的更多相关文章
- java集合框架之几种set(HashSet LinkedHashSet TreeSet )
参考http://how2j.cn/k/collection/collection-sets/691.html#nowhere HashSet LinkedHashSet TreeSet HashSe ...
- C++中的set和java的hashset有何区别?
以前对C++的STL容器烂熟于心,两年没碰过C++了,现在已经很生疏了.工作原因转战java,对java的容器不甚了解,特别是每看到一种容器,不由自主地拿起和C++对比.C++中的set和java的h ...
- Java 集合框架 LinkedHashSet 和 LinkedHashMap 源码剖析
总体介绍 如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的LinkedHashSet和LinkedHashMap其实也是一回事. ...
- JDK1.8源码(八)——java.util.HashSet 类
在上一篇博客,我们介绍了 Map 集合的一种典型实现 HashMap ,在 JDK1.8 中,HashMap 是由 数组+链表+红黑树构成,相对于早期版本的 JDK HashMap 实现,新增了红黑树 ...
- (6)Java数据结构-- 转:JAVA常用数据结构及原理分析
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...
- java——数据结构
底层数据结构: 数组 ArrayList 链表 LinkedList 应用数据结构: 二分搜索树 BST 最大堆/最小堆 MaxHeap/MinHeap 线段树 SegmentTree 字典树 Tri ...
- java 集合 HashSet 实现随机双色球 HashSet addAll() 实现去重后合并 HashSet对象去重 复写 HashCode()方法和equals方法 ArrayList去重
package com.swift.lianxi; import java.util.HashSet; import java.util.Random; /*训练知识点:HashSet 训练描述 双色 ...
- java数据结构4--集合Set
Set接口 Set接口用来表示:一个不包含“重复元素”的集合Set接口中并没有定义特殊的方法,其方法多数都和Collection接口相同. 重复元素的理解:通常理解:拥有相同成员变量的对象称为相同的对 ...
- Java Set HashSet
import java.util.HashSet; import java.util.Set; /** Set存储特点:数据无序.不可重复 Set接口的实现类: HashSet:Set接口的主要实现类 ...
随机推荐
- 2020-04-05:谈一下spring事务传播
- QUIC协议详解之Initial包的处理
从服务器发起请求开始追踪,细说数据包在 QUIC 协议中经历的每一步.大量实例代码展示,简明易懂了解 QUIC. 前言 本文介绍了在 QUIC 服务器在收到 QUIC 客户端发起的第一个 UDP 请求 ...
- C# NPOI计算Execl里面的公式
我这里分两种情况处理 1.Execl中表格中存在公式,我们通过公式获取数据 我们通过Npoi,获取列的属性: private static object GetValueType(ICell cell ...
- 遗传算法框架-基于java jenetics库实现
本篇并非介绍如何从0开始开发遗传算法框架,反而推荐各位使用已有的GA库jenetics来做遗传算法. GA算法的逻辑还是贴下: 好了,下面介绍的是基于jenetics开发的更贴近业务侧的框架,以及使用 ...
- vue+vant 上传图片需要注意的事项
<van-uploader v-model="fileList" multiple :after-read="afterRead" :max-count= ...
- Excel 科学计数法数值转换
问题场景 如果导出的数据文件后缀为.CSV,一般数值类型的数据超过12位后,单元格的数据就用科学计数法来表示了. 比如身份证号.较长的id,数值会超过12位,而科学计数法表示,不方便查看或操作,很多情 ...
- @SuppressWarnings注解用法详解(转)
原文连接https://blog.csdn.net/sysware_carol/article/details/52100580 今天来谈谈@SuppressWarnings注解的作用. J2SE 提 ...
- 随机陷阱和P值
如果让大家写一个50次的抛硬币实验的可能结果(头像H或字T),多半人在连续三个一样的后,会换一下.因为大家都知道,连续一样的越多,概率越小,越不可能发生.大部分人不会去想,其实HHHTT和HHHHH发 ...
- Linux下执行SQL文件
最近在使用MySQL数据库时,想要执行一些sql文件,就想到了source命令. source介绍:source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令. 功能:使Shell ...
- Better Key Sizes (and Attacks) for LWE-Based Encryption
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文 Abstract 基于“learning with errors”(LWE)问题,分析了理 ...