3.2HashSet|——HashSet:底层数据结构是哈希表 , 线程是不同步的 。 无序 , 高效;
HashSet集合保证元素唯一性:通过元素的hashCode方法 , 和equals方法完成的 。
当元素的hashCode值相同时 , 才继续判断元素的equals是否为true 。
如果为true , 那么视为相同元素 , 不存 。 如果为false , 那么存储 。
如果hashCode值不同 , 那么不判断equals , 从而提高对象比较的速度 。
|——LinkedHashSet:有序 , hashset的子类 。|——TreeSet:对Set集合中的元素的进行指定顺序的排序 。 不同步 。 TreeSet底层的数据结构就是二叉树 。
对于ArrayList集合 , 判断元素是否存在 , 或者删元素底层依据都是equals方法 。
对于HashSet集合 , 判断元素是否存在 , 或者删除元素 , 底层依据的是hashCode方法和equals方法 。 3.3TreeSet
- 用于对Set集合进行元素的指定顺序排序 , 排序需要依据元素自身具备的比较性 。
- 如果元素不具备比较性 , 在运行时会发生ClassCastException异常 。
- 所以需要元素实现Comparable接口 , 强制让元素具备比较性 , 复写compareTo方法 。
- 依据compareTo方法的返回值 , 确定元素在TreeSet数据结构中的位置 。
- TreeSet方法保证元素唯一性的方式:就是参考比较方法的结果是否为0 , 如果return 0 , 视为两个对象重复 , 不存 。
- 映射用来存放键/值对 , 如果提供了键 , 就能查找到值 。
- Java类库为映射提供了两个通用的实现:HaspMap和TreeMap 。
- Map集合:
|——HashMap:底层是哈希表数据结构 , 是线程不同步的 。 可以存储null键 , null值 。 替代了Hashtable.
|——TreeMap:底层是二叉树结构 , 可以对map集合中的键进行指定顺序的排序 。
- Map集合存储和Collection有着很大不同:
Collection是单列集合;Map是双列集合 。
Map中的存储的一对元素:一个是键 , 一个是值 , 键与值之间有对应(映射)关系 。
特点:要保证map集合中键的唯一性 。
- 1 , 添加 。
void putAll (Map);
- 2 , 删除 。
value remove (key) :删除指定键 。
- 3 , 判断 。
boolean containsKey (key):是否包含key
boolean containsValue (value) :是否包含value
- 4 , 取出 。
value get (key) :通过指定键获取对应的值 。 如果返回null , 可以判断该键不存在 。 当然有特殊情况 , 就是在hashmap集合中 , 是可以存储null键null值的 。
Collection values (): 获取map集合中的所有的值 。
- 5 , 想要获取map中的所有元素:
- Java|干翻小米,红米又出超大杯旗舰,120W+2K直屏+双旗舰芯
- 百度地图|Java程序员应知应会之Maven和Gradle的区别
- javascript|穿戴设备将迎变革,OPPO又增新专利,能提升模式切换效率!
- Java|Gamamobi CEO黄继德:我们的元宇宙游戏不担心体验落差
- Java|美国传来新消息,ASML态度也变了,这一切竟如此之快
- Java|李佳琦消失扯下阿里“遮羞布”,原来淘宝根本就没有护城河
- Java|我做公众号终于不亏钱了
- 编程|打造Web3.0基础设施 百度瞄准元宇宙的“人货场”?
- Java|微信转账时弹出“这行字”,别输付款密码,有人已经中招了
- Java|合肥恒泽冠雨讲坛:哪些方法能够快速输出抖音视频内容?
