java集合总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
以上是关于java集合总结的主要内容,如果未能解决你的问题,请参考以下文章