HashMap、HashTable、ArrayList、LinkedList总结

一、HashMap和HashTable的区别与联系

  • HashMap继承AbstractMap类,而HsahTable继承Dictionary类
  • HashMap使用JDK1.2版本,HashTable使用JDK1.0版本
  • HashMap线程不安全,HashTable线程安全(由于方法上加了Synchronized关键字)

HashMap的底层数据结构的数组+链表,逻辑结构图如下:

HashMap、HashTable、ArrayList、LinkedList总结

紫色代表hash数组,绿色代表链表,数组中的每个节点代表链表的头节点,链表是用来解决冲突的,当不同的key对应数组的同一位置时,就将其放入链表中。

二、ArrayList和LlnkedList的区别

  • ArrayList的数据结构是动态数组,LinkedList的数据结构是链表
  • ArrsyList便于进行get和set查找
  • LinkedList便于进行新增和删除

参考:https://www.cnblogs.com/SaraMoring/p/5878772.html