学编程 ❀(๑╯◡╰๑)❀ 就上soxunxi.cn!这里有CMS,CSS,NET,PHP,Linux,HTML,JAVA,MySQL,Python等教程.
当前位置: JAVA > java中的不反复的鸠合有哪些【JAVA教程】,java,集合

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网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"java中的不反复的鸠合有哪些【JAVA教程】,java,集合"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线