HashMap、HashTable、ArrayList、LinkedList总结
一、HashMap和HashTable的区别与联系
- HashMap继承AbstractMap类,而HsahTable继承Dictionary类
- HashMap使用JDK1.2版本,HashTable使用JDK1.0版本
- HashMap线程不安全,HashTable线程安全(由于方法上加了Synchronized关键字)
HashMap的底层数据结构的数组+链表,逻辑结构图如下:
紫色代表hash数组,绿色代表链表,数组中的每个节点代表链表的头节点,链表是用来解决冲突的,当不同的key对应数组的同一位置时,就将其放入链表中。
二、ArrayList和LlnkedList的区别
- ArrayList的数据结构是动态数组,LinkedList的数据结构是链表
- ArrsyList便于进行get和set查找
- LinkedList便于进行新增和删除