集合综述
Java集合工具包框架图(如下):

Collection包含了List和Set两大分支。
(01) List是一个有序的队列,每一个元素都有它的索引。第一个元素的索引值是0。
List(后缀):有序(存入和取出的顺序一致)列表,允许存放重复的元素;
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;
LinkedList:链表实现,增删快,查询慢 注意LinkedList没有同步方法。
如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
Vector:数组实现,线程安全,重量级 Vector和ArrayList在更多元素添加进来时会请求更大的空间。Vector每次请求其大小的双倍空间,而ArrayList每次对size增长50%.
(02) Set是一个不允许有重复元素的集合,无序,允许有null
判断元素的唯一性:
通过对象的hashCode和equals方法来完成对象唯一性的。
如果对象的hashCode值不同,那么不用判断equals方法,就直接存储到哈希表中。
如果对象的hashCode值相同,那么要再次判断对象的equals方法是否为true。 如果为true,视为相同元素,不存。
如果为false,那么视为不同元素,就进行存储。 注意:如果元素要存储到HashSet集合中,必须覆盖hashCode方法和equals方法。
Map是一个映射接口,即key-value键值对。Map中的每一个元素包含“一个key”和“key对应的value”。
AbstractMap是个抽象类,它实现了Map接口中的大部分API。而HashMap,TreeMap,WeakHashMap都是继承于AbstractMap。
参考:
http://www.cnblogs.com/skywang12345/p/3308498.html
http://www.cnblogs.com/skywang12345/p/3308513.html
浙公网安备 33010602011771号