Java List Set Map

一、List 

1.1 ArrayList

Java List Set Map_第1张图片

1.2 LinkedList

Java List Set Map_第2张图片

二、Set

2.1 HashSet

Java List Set Map_第3张图片

2.2 TreeSet

Java List Set Map_第4张图片

2.3 LinkedHashSet

Java List Set Map_第5张图片

 

三、Map

3.1 HashMap

Java List Set Map_第6张图片

3.2 TreeMap

Java List Set Map_第7张图片

3.3 LinkedHashMap

Java List Set Map_第8张图片

四、对比

类型 底层结构 重复 null值 场景 备注 查询 删除 新增
List ArrayList 动态数组 允许 快速随机访问元素 0(1) 0(n) 尾部增加0(1),中部增加0(n)
LinkList 双向链表 允许 需要快速插入,删除元素 0(n) 0(1) 尾部增加0(1),中部增加0(n)
Set HashSet 数组+(链表、红黑树) 不可 允许 不要求顺序,且没有重复元素 重写hsahCode、equlas 0(1) 0(1) 0(1)
TreeSet 红黑树 不可 不允许 要求顺序,且没有重复元素 重写comparato 0(logN) 0(logN) 0(logN)
LinkedHashSet 数组+(链表、红黑树))+链表 不可 允许 有特定输出顺序,且没有重复元素 0(1) 0(1) 0(1)
Map HashMap 数组+(链表、红黑树) 不可 允许 键值存取,而且不要求顺序 时间复杂度平均能达到O(1)。正常是O(1)到O(n) jdk1.8添加了 红黑树 是 O(log n) 0(1) 0(1) 0(1)
TreeMap 红黑树 不可 不允许 键值存取值,而且要求顺序 重写comparato 0(logN) 0(logN) 0(logN)
LinkedHashMap (数组+(链表、红黑树))+链表 不可 允许 有特定输出顺序键,键值存取 0(1) 0(1) 0(1)

你可能感兴趣的:(java)