用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。
有HashMap、HashTable、LinkedHashMap、TreeMap
在Map中插入,删除,定位元素:HashMap
要按照自定义顺序或自然顺序遍历:TreeMap
要求输入顺序和输出顺序相同:LinkedHashMap
从内部数据结构分析:
- HashMap 数组+链表/红黑树
- HashTable 数组+链表
- LinkedHashMap 双向链表
- TreeMap 红黑树
从线程安全分析:
- HashMap 非线程安全
- HashTable 线程安全的
- LinkedHashMap 非线程安全
- TreeMap 非线程安全的