首页 > 其他 > 详细

List、Map集合总结

时间:2019-11-14 10:43:51      阅读:80      评论:0      收藏:0      [点我收藏+]

一、List

1、ArrayList

  继承AbstractList类,实现List, RandomAccess, Cloneable, java.io.Serializable接口,采用Object[]数组方式存储,查询快,增删慢,实现了可变大小的数组,原理是通过Arrays.copyOf()再new一个数组

2、Vector

  继承AbstractList类,实现List, RandomAccess, Cloneable, java.io.Serializable接口,采用Object[]数组方式存储,查询快,增删慢,方法被synchronized修饰,所以线程安全

3、LinkList

  继承AbstractSequentialList类(继承AbstractList),实现List, Deque, Cloneable, java.io.Serializable接口,采用链表方式存储,增删快,查询慢

二、Map

1、HashMap

  HashMap继承AbstractMap类,并实现Map, Cloneable, Serializable接口

  key通过hash后和value存储到哈希表中,没有使用synchronized,所以线程不安全,但效率比较快,而且还能支持键值为null

2、Hashtable

  Hashtable继承Dictionary类,并实现Map, Cloneable, Serializable接口

  Hashtable方法都被synchronized修饰,所以是线程安全的,但效率没HashMap快,不能支持键值为null

3、LinkedHashMap

  LinkedHashMap继承HashMap类,并实现Map接口,键值对既在哈希表中,又在双向链表中

  LinkedHashMap内部有个双向链表,同时支持插入顺序和访问顺序两种

  插入顺序:先进先出;访问顺序:所谓访问指的是get/put操作,对一个键执行get/put操作后,其对应的键值对会移动到链表末尾,所以最末尾的是最近访问的,最开始的是最久没有被访问的。

      

List、Map集合总结

原文:https://www.cnblogs.com/yifei-octopus/p/10729846.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!