You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
1.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## List
+ ArrayListObject[]数组
+ Vector: Object[]数组
+ LinkedList: 双向链表JDK1.6之前为循环链表JDK1.7取消)
## Set
+ HashSet无序唯一基于hashMap实现底层采用HashMap来保存元素
+ LinkedHashSet是HashSet的子类并且其内部是通过LinkedHashMap实现
+ TreeSet有序唯一红黑树
## Queue
+ PriorityQueueObject[]数组实现二叉堆
+ ArrayQueueObject[]数组+双指针
## Map
+ HashMapJDK1.8之前由数组+链表组成,数组是 `HashMap` 的主体链表则是主要为了解决哈希冲突而存在的“拉链法”解决冲突。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8将链表转换成红黑树前会判断如果当前数组的长度小于 64那么会选择先进行数组扩容而不是转换为红黑树将链表转化为红黑树以减少搜索时间
+ `LinkedHashMap` `LinkedHashMap` 继承自 `HashMap`,所以它的底层仍然是基于拉链式散列结构即由数组和链表或红黑树组成。另外,`LinkedHashMap` 在上面结构的基础上,增加了一条双向链表,使得上面的结构可以保持键值对的插入顺序。同时通过对链表进行相应的操作,实现了访问顺序相关逻辑。
+ Hashtable数组+链表组成的,数组是 `Hashtable` 的主体,链表则是主要为了解决哈希冲突而存在的
+ TreeMap红黑树自平衡的排序二叉树