028-86261949

当前位置:首页 > 技术交流 > 容易混淆的继承体系之集合框架

容易混淆的继承体系之集合框架

2018/12/24 14:52 分类: 技术交流 浏览:18

对于Java初学者来说,集合的继承体系容易混淆,今天特意整理。


 



Collection接口向下延伸,开发中常用两大类一:List

1:ArrayList(底层数组)(线程不安全,同理效率高)
2:Vector(底层数组)(线程安全,和ArrayList差不多,方法前多了个synchronize关键字
3:LinkedList(底层链表)(线程不安全,同理效率高)
ArrayList和LinkedList的比较:
①ArrayList查询快,增加慢(因为底层是数组,查询根据下标就可以了)
②LinkedList查询慢,增删快

二:Set

1:HashSet(底层HashMap)(线程不安全,同理效率高)
2:TreeSet(底层TreeMap)(线程不安全,同理效率高)
Set集合都是不允许重复的,因为底层是HashMap,add方法添加的时候实际上是Map添加的一个key。



 

Map接口向下延伸,开发中常用又分为两大类

1:HashMap(底层键值对:key:value)(线程不安全,同理效率高)(无序的)
2:HashTable(底层键值对:key:value)(线程安全,同理效率低)(无序的)
3:TreeMap(底层键值对:key:value)(线程不安全,同理效率高)(有序的)
HashMap和HashTable的区别:
HashMap线程不安全,HashTable线程安全,同理效率高低,HashMap的value允许为null,HashTable的Key和Value都不允许为null;
#标签:java