list,set ,map底层分析

list,set ,map底层分析

一.interface Collection<E>

Java中所有集合的总接口,规定了集合最基本的方法和规范。
interface List<E> extends Collection<E>
List集合,特征:有序,可重复
class ArrayList<E> implements List<E> 【重点】
底层结构为【可变长数组结构】,特征:增删慢,查询快
class LinkedList<E> implements List<E> 【重点】
底层结构为【双向链表结构】,特征: 增删快,查询慢
class Vector<E> implements List<E>
底层结构为【可变长数组结构】,特征:增删慢,查询快,【线程安全】效率低于 ArrayList

二.interface Set<E> extends Collection<E>

Set集合,特征:无序,不可重复
class HashSet<E> implements Set<E> 【伪重点】 HashMap HashTable
底层结构为【哈希表】,每一个单元格位置都有唯一的坐标。存储效率极高
会涉及到 两个方法 分别是 Object类内 hashCode 方法和 equals 方法
class TreeSet<E> implements Set<E>
底层结构为【树形】结构,要求存储的元素有自然顺序或者比较方式。

三.interface Map<K,V> Java中键值对 Map 双边队列接口

class HashMap<K, V>
jdk1.8之前list+链表
jdk1.8之后list+链表(当链表长度到8时,转化为红黑树)HashMap的扩容因子默认0.75,也就是会浪费 1/4的空间,达到扩容因子时,会将list扩容一倍,0.75是时间与空间一个平衡值;
底层存储数据的结构为 哈希表 结构,存储位置由 Key 存储对象来明确,同时 Key 不可以重复,具有唯一 性存储过程需要得到 Key 对应对象的 hashCode 数据,如果出现了 相同 hashCode 结果,也是调用 Key 对应 equals方法进行比较。
class TreeMap<K, V>
底层 二叉树 结构,要求存储数据 Key 有自然顺序,或者比较方式。
比较方式
interface Comparable<T> 修饰当前类为可比较的类
interface Comparator<T> 提供处理当前存储元素类对象的比较器 

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » list,set ,map底层分析