java集合总结

 

1.java集合主要有2个根接口分别是Collection和map

Collection 接口主要有3个子接口
Set:无序集合元素不可以重复。
Queue队列
List:有序集合元素可以重复。

-------------------Set-----------------

Set包括HashSet,TreeSet,EnumSet
HashSet特点:
1.不能保证元素排列顺序,顺序可能发生变化。
2.不是同步的,多个线程同时修改HashSet集合时,会出现线程安全问题。
3.值可以为Null。
HashSet集合判断2个元素相等的标准是2个对象通过equals()方法比较相等并且2个对象的hashCode()方法返回值也相等。

LinkedHashSet特点:
会按照元素的添加顺序来访问集合元素,因为需要维护元素插入顺序所以性能比HashSet差。

TreeSet特点:
会根据元素实际值大小来进行排序。分为自然排序和定制排序2种。
EnumSet是专为枚举类设计的集合类

性能分析:
HashSet性能总比TreeSet好(特别是常用的添加,查询操作),因为TreeSet需要维护元素的次序。
EnumSet是性能最好的,但是他只能保存同一个枚举类的枚举值。
他们都是线程不安全的。可以通过Collections来同步保证同步。

-------------------List-----------------
List包括ArrayList和Vector实现类
1.ArrayList是线程不安全的,Vector是线程安全的。
2.Vector性能比ArrayList好。

------------------Queue-----------------

 

-----------------Map--------------------
Map主要包括HashMap和Hashtable,EnumMap,LinkdeHashMap
HashMap与Hashtable区别:
1.Hashtable是线程安全的,HashMap是线程不安全的,所以HashMap性能理高一点。
2.Hashtable的key和值不可以为null,HashMap允许有一个key为NUll,多个value值为null;

 

posted @ 2016-03-10 11:13  ysw  阅读(137)  评论(0编辑  收藏  举报