list
-
ArrayList
new 的时候是个 null 数组,加第一个数据的时候数组大小变成10 ,放第11个数据的时候按1.5倍扩 · 容,如果初始化为6,插入第7个元素的时候扩容为9
-
linkedList
没有容量一说
-
Vector
Vector和ArrayList 差不多,不过是按照2倍扩容
set
-
hashset
底层实现hashMap
-
linkedHashset
底层是linkedHashMap
map
-
hashmap
可以有一个key为空 hashcode() tostring()
修正上图一处:TREEIFY_THRESHOLD = 8,这个常量就当数组大于等于默认值,是转化为红黑 树一个条件。>=8 >=64 超过了临界值 才2倍扩容
-
LinkedHashMap
LinkedHashMap 是 HashMap子类 可以有一个key为空
维护的是 entry 双向链表 类型的table 扩容和树化和hash一样static class Entry<K,V> extends HashMap.Node<K,V> { Entry<K,V> before, after; Entry(int hash, K key, V value, Node<K,V> next) { super(hash, key, value, next); } }
-
Hashtable
key val 都不能为空 底层和hashmap差不多,方法是同步的,是线程安全的
-
Properties
用来读取文件
TreeSet只是TreeMap的一个马甲 红黑树
HashMap:适用于Map插入,删除,定位元素;
TreeMap:适用于按自然顺序或自定义顺序遍历键(key);