总结:
List 有序可重复
ArrayList 查询快添加删除相对慢 底层 数组
LinkedList 添加删除快 查询慢 底层 双向链表
Set 无序不重复
HashSet 底层是HashMap 底层是散列表
TreeSet 底层是TreeMap 底层是红黑树 元素有序
Map 无序 key不能重复 value可以重复保存映射关系
HashMap 底层是散列表
TreeMap 底层是红黑树 元素必须有序
1 散列表(哈希表)
1.1 概述
哈希表
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
1.2 底层实现
增加方法
通过key获得哈希值:去掉低16位保留高16位
节点保存 key value hash next
1.3 HashSet
HashSet的底层就是HahsMap
添加数据虽然调用的是HashSet的add本质上却是HashMap的put方法
使用HashSet方法添加的时候只传入key value我们不需要关心
2 Map
Map 无序 保存的K-V 键值对是映射关系 K 不能重复但是 V可以重复
2.1 HashMap
2.1.1常用方法
2.1.2 遍历
2.2 TreeMap
方法跟hashmap用法一样
3 泛型
4 利用entry进行 value排序
5 补充 list排序