容器分类
java容器主要分为三类:collection,map,iterator。
一.collection
(一)list接口(元素有序且可以重复,通过索引来访问)
1.ArrayList
底层数组实现,查询快但增删慢,非线程安全。
2.LinkedList
底层是链表实现,查询慢但增删快
3.Vector
和ArrayList一样,但他是线程安全的。
(二)queue接口
1.PriorityQueue(优先队列)
底层数组实现(完全二叉树),按照队列中的某个值的大小来排序。
2.ArrayDeque
底层循环数组实现,基于数组的双端队列。
(三)set接口(元素无序且不允许重复)
1.hashSet
底层哈希表+红黑树实现。
2.TreeSet
底层二叉树实现。
二.map
1.hashMap(常见)
底层由数组+链表实现。
当数组长度超过阈值(8)底层由数组+链表+红黑树实现。(jdk8)
2.hashTable(常见)
同hashmap。区别hashTable线程安全,hashMap非线程安全。
3.sortedMap接口(这是接口,Map->SortedMap->TreeMap)
(1)treeMap(重点)
基于红黑树实现。非线程安全,有序。
4.weakHashMap
与hashmap的区别,这是对实际对象的弱引用,hashmap则是对实际对象的强引用。
(强引用,弱引用,软引用,虚引用在jvm的分类中,学到再说)
5.IdentityHashMap
与hashmap的区别,仅在key完全相等(引用相等)时才认为相等。
6.EnumMap
枚举类型的map。
三.iterator
迭代器。