从map,list,set三大接口下分类别回答
- map接口下的:
- HashMap(首先想起最常用的hashmap,无序,线程不安全,底层是数组加链表加红黑树),
- HashTable(然后想起线程安全的hashtable),
- HashTree(然后想起有序的hashtree,底层是红黑树),
- LinkedHashMap(然后想起有序的hashtree,底层是红黑树),
- ConcurrentHashMap(然后想起有序的hashtree,底层是双向链表加数组加链表加红黑树,线程安全)
ConcurrentHashMap结合了HashMap和Hashtable二者的优势
- List接口下的:
- ArrayList(底层为数组的arraylist,线程不安全),
- LinkedList(底层为链表的的LinkedList,线程不安全),
- Stack(常用的栈,继承自Vector,底层是通过数组实现的,线程安全)
- Vector(底层是通过数组实现的,线程安全)
-
Set接口下的:
- HashSet(HashSet底层使用了Hash表实现),
- TreeSet(TreeSet底层使用了红黑树来实现),
- LinkedHashSet( LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现)