Java自学小白——Set系列集合、Map集合体系

   一、Set系列集合

Set系列集合特点

  • 无序:存取顺序不一致
  • 不重复:可以去除重复
  • 无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素

Set集合实现类特点

  • HashSet:无序、不重复、无索引
  • LinkedHashSet:有序、不重复、无索引
  • TreeSet:排序、不重复、无索引

Set集合的功能基本上于Collection的API一致。

 

 

 1.HashSet底层原理

  • HashSet集合底层采取哈希表存储的数据。
  • 哈希表是一种对于增删改查数据性能都较好的结构。

2.哈希表的组成

  • JDK8之前,底层使用数组+链表组成
  • JDK8之后,底层采用数组+链表+红黑树组成

哈希值

  • 是JDK根据对象的地址,按照某种规则算出来的int类型的数值

Object类的API

  • public int hashCode():返回对象的哈希值

对象的哈希值特点

  • 同一个对象多次调用hashCode()方法返回的哈希值是相同的
  • 默认情况下,不同对象的哈希值是不用的

哈希表的详细流程

 

 

 

 

 

 ps:只要往表中增加到12个元素,不管是占用一个位置还是链表连接,都会触发扩容机制

 LinkedHashSet

 

 

 

 

TreeSet

 

 

 

 

 

 

 

 

 

 

   二、Map系列集合

 

 

 Map的遍历方式

1.键找值

 

 

2.键值对

 

 

3.Lambda

Map集合的实现类HashMa

 

 

 

 

 

HashTable:初始大小为11,临界因子为0.75,扩容机制为自己看源码

 

 properties

总结

 

   三、Collections工具类

 

posted @ 2022-10-08 14:28  Ppotato3  阅读(48)  评论(0)    收藏  举报