Java集合框架是指导java的集合类。Collection 接口是一组允许重复的对象。Set 接口继承 Collection,但不允许重复,使用自己内部的一个排列机制。 List 接口继承 Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
接口:
List
Set
Map
常用的实现:
List: ArrayList,LinkedList
Set:HashSet, LinkedHashSet, TreeSet
Map:HashMap, Hashtable, LinkedHashMap, TreeMap
接口 | 实现类 |
---|---|
List | ArrayList: 该类也是实现了List的接口,实现了可变大小的数组,随机访问和遍历元素时,提供更好的性能。该类也是非同步的,在多线程的情况下不要使用。ArrayList 增长当前长度的50%,插入删除效率低。 LinkedList: 该类实现了List接口,允许有null(空)元素。主要用于创建链表数据结构,该类没有同步方法,如果多个线程同时访问一个List,则必须自己实现访问同步,解决方法就是在创建List时候构造一个同步的List。例如 List list=Collections.synchronizedList(new LinkedList()); |
Set | HashSet:该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个。 LinkedHashSet:具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。 TreeSet:该类实现了Set接口,可以实现排序等功能。 |
Map | HashMap:HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。 Hashtable:功能和HashMap相同只不过是线程安全 LinkedHashMap:继承于HashMap,使用元素的自然顺序对元素进行排序. TreeMap:继承了AbstractMap,并且使用一颗树。 |