当前位置:首页 > JAVA教程 > 正文内容

java中的不反复的鸠合有哪些【JAVA教程】,java,集合

搜教程4年前 (2019-12-27)JAVA教程144

Java鸠合类寄存于 java.util 包中,是一个用来寄存对象的容器。下面我们来看一下java中不反复的鸠合。

Set:典范完成 HashSet()是一个无序,不可反复的鸠合

1、Set hashSet = new HashSet();

①、HashSet:不能保证元素的递次;不可反复;不是线程平安的;鸠合元素可认为 NULL;

②、其底层实际上是一个数组,存在的意义是加速查询速率。我们晓得在平常的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在肯定的关联,因而,在数组中查找特定的值时,需要把查找值和一系列的元素举行比较,此时的查询效力依赖于查找过程当中比较的次数。而 HashSet 鸠合底层数组的索引和值有一个肯定的关联:index=hash(value),那末只需要挪用这个公式,就能够疾速的找到元素或许索引。

③、关于 HashSet: 假如两个对象经由过程 equals() 要领返回 true,这两个对象的 hashCode 值也应当雷同。

2、Set linkedHashSet = new LinkedHashSet();

①、不能够反复,有序

由于底层采纳 链表 和 哈希表的算法。链表保证元素的增加递次,哈希表保证元素的唯一性

3、Set treeSet = new TreeSet();

TreeSet:有序;不可反复,底层运用 红黑树算法,擅长于局限查询。

* 假如运用 TreeSet() 无参数的组织器建立一个 TreeSet 对象, 则请求放入个中的元素的类必需完成 Comparable 接口所以, 在个中不能放入 null 元素。

以上三个 Set 接口的完成类比较:

共同点:

1、都不许可元素反复

2、都不是线程平安的类,解决办法:Set set = Collections.synchronizedSet(set 对象)

不同点:

HashSet:不保证元素的增加递次,底层采纳 哈希表算法,查询效力高。推断两个元素是不是相称,equals() 要领返回 true,hashCode() 值相称。即请求存入 HashSet 中的元素要掩盖 equals() 要领和 hashCode()要领

LinkedHashSet:HashSet 的子类,底层采纳了 哈希表算法以及 链表算法,既保证了元素的增加递次,也保证了查询效力。然则团体机能要低于 HashSet    

TreeSet:不保证元素的增加递次,然则会对鸠合中的元素举行排序。底层采纳 红-黑 树算法(树结构比较合适局限查询)

Map:key-value 的键值对,key 不许可反复,value 能够

1、严格来说 Map 并非一个鸠合,而是两个鸠合之间 的映照关联。

2、这两个鸠合没每一条数据经由过程映照关联,我们能够看成是一条数据。即 Entry(key,value)。Map 能够看成是由多个 Entry 构成。

3、由于 Map 鸠合即没有完成于 Collection 接口,也没有完成 Iterable 接口,所以不能对 Map 鸠合举行 for-each 遍历。

更多java学问请关注java基础教程栏目。

以上就是java中的不反复的鸠合有哪些的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16729.html

标签: java集合
分享给朋友:

“java中的不反复的鸠合有哪些【JAVA教程】,java,集合” 的相关文章

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

Java怎样创建和添补PDF表单域(代码示例)【JAVA教程】,Java

本篇文章给人人带来的内容是关于Java怎样建立和添补PDF表单域(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 表单域,能够按用处分为多种差别的范例,罕见的有文本框、多行文本框、暗码框、隐蔽域、复选框、单选框和下拉挑选框等,目标是用于收集用户的输入或挑选的数据。下...

java8中时候的运用详解(附示例)【JAVA教程】,java8

本篇文章给人人带来的内容是关于java8中时候的运用详解(附示例),有肯定的参考价值,有须要的朋侪可以参考一下,愿望对你有所协助。 为何须要新的时候API? 在Java 8之前的日期/时候API之前,现有的与日期和时候相干的类存在诸多题目,个中重要有: Java的日期/时候类的定义并不一...

JSP中怎样运用Cookie?(代码示例)【JAVA教程】,JSP,Cookie

JSP中怎样运用Cookie?(代码示例)【JAVA教程】,JSP,Cookie

Cookie是存储在用户盘算机中的一小段信息;在下次接见时,Web服务器会运用cookie来辨认用户。下面本篇文章就来带人人简朴相识一下Cookie,引见怎样运用JSP来处置惩罚Cookie,愿望对人人有所协助。【视频教程引荐:JSP教程】 cookie的事情道理 Cookie会以[ke...

SpringBoot在IntelliJ IDEA中完成热布置的图文教程【JAVA教程】,SpringBoot

SpringBoot在IntelliJ IDEA中完成热布置的图文教程【JAVA教程】,SpringBoot

本篇文章给人人带来的内容是关于SpringBoot在IntelliJ IDEA中完成热布置的图文教程,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 现实开辟过程当中,经常会修正代码重启运用,每次手动重启既贫苦开辟效力又低,所以热布置关于开辟来讲显得十分必要,本文将引见如安在I...

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

ThreadLocal的完成道理的剖析引见(附代码)【JAVA教程】,ThreadLocal

本篇文章给人人带来的内容是关于ThreadLocal的完成道理的剖析引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 ThreadLocal,即线程局部变量,用来为每一个运用它的线程保护一个自力的变量副本。这类变量只在线程的生命周期内有效。而且与锁机制那种以时候调...

Spring boot集成spring session完成session同享的要领引见【JAVA教程】,Spring boot

本篇文章给人人带来的内容是关于Spring boot集成spring session完成session同享的要领引见,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 近来运用spring boot开辟一个体系,nginx做负载平衡分发要求到多个tomcat,此时接见页面会把要求...