首页 > 编程语言 > 详细

【Java】Set

时间:2020-02-14 14:12:42      阅读:58      评论:0      收藏:0      [点我收藏+]

Set集合本身只定义有不允许重复的存储,Set继承了Colletion的接口,也就是说Set几乎与Collection的操作是对等的。

从实际的开发来看,经常使用到Set集合的框架只有Hibernate,还有一些批量删除这样的操作,但是我们大家一开始还是考虑List接口。

但是对于Set接口最麻烦的问题不在于它的接口特点而在于子类特点,如果从开发的角度来说,常见的是以下三个可能见到的子类:

  1.HashSet(无序存放)

    -源代码里面有一个HashMap,但是没有使用value,只使用了key

    -在HashMap的add()方法中使用了put()方法

    -put调用了putval()方法

    -putval()里面使用了哈希码

    -在整个存储过程中使用了hashCode()的使用

    -在进行我们内部的Node类处理时,依然使用了equals()判断key与value内容

    -这个时候之所以没有区分出重复元素,是因为这个子类里面并没有提供一个与之相符合的hashCode()和equals()方法,从而默认会去找super的hashCode()方法,而object类中的hashCode()是一个navie类,其中hashCode返回的是由对象存储地址转化得到的值。(注意,String类中重写了) 

  2.TreeSet

  3.LinkedHashSet

    如果这个时候需要进行连续的保存(FIFO), 这个时候,可以使用另一个子类,这个子类只会在Hibernate中有。

【Java】Set

原文:https://www.cnblogs.com/guangluwutu/p/12307058.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!