文章目录
- 前言
- 一、Set接口是什么?
- 三、哈希值
- 四、HashSet与TreeSet
- 总结
前言
Set集合是Collection的直接的子类,API完全一致,仅拥有一些特点。
一、Set接口是什么?
Set接口同Queue,List都属于Collection接口的子接口,和Collection中的API完全一致 完全一致!!!。
API详解看:Collection类的那些事
# 二、Set接口独有特点 特点:
a.Set集合是截取Map(映射表)的key部分,不是value部分,简而言之就是Set是Map的一部分。
b.Set集合的物理空间是不连续的,添加没有顺序(不是随机),通过计算hashcode来安排位置,所以对于集合的迭代顺序不做保证,输出顺序可能和输入顺序不一致。
c.Set集合不允许有重复值,值是唯一的,可以存在最多一个null值
d.使用equals()判断元素是否重复
三、哈希值
哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值,可通过Object中的hashCode()方法获取哈希码值。
默认情况下同类型的对象,哪怕数值一样,哈希值也是不同的
所以在写自定义类的时候,尽量重写hashCode()方法。
String类重写了hashCode,使得可能存在字符串不同,hash值相同的情况
四、HashSet与TreeSet
(别急嘛,待补充)hashset与treeset锐意书写中
总结
提示:Set接口并不是什么需要记忆的东西,只要理解了Set是Map的key部分就逐渐理解一切了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)