最近在看一本书,里面讲到了JAVA集合类。故总结下,欢迎指正。
集合类
Collections
List : ArrayList
长度增长方式为原有容量1.5倍+1
List : Vector
实现方法与ArrayList基本相同,也是用数组实现的
实现里加上了syschnoized,所以同ArrayList比较,它是线程安全的
长度增长方式为capacity +capacityIncrement ,其中capacityIncrement 可以设置,默认为上一次的一倍
List : LinkedList
Set : HashSet
该类实际上是由HashMap实现的
Set : TreeSet
Set : LinkedHashSet
Map
HashMap
该方法不是线程安全的
HashMap的数据结构可以概括为一句话:链表加数组。 也就是其最常见的一种实现方式,拉链法。 // 存储时: int hash = key.hashCode(); int index = hash % Entry[].length; Entry[index] = value; // 取值时: int hash = key.hashCode(); int index = hash % Entry[].length; return Entry[index];
TreeMap
实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序
LinkedHashMap
HashMap的链表实现方式