1.List接口的实现类
要使用List集合,通常情况下需要声明为List类型,然后通过List接口的实现类来对集合进行实例化。List接口的实现类常用的有ArrayList与LinkedList
ArrayList类
该类实现了可变的数组,允许所有元素,包括null。可以根据索引位置对集合进行快速的随机访问。缺点是向指定的索引位置插入对象或者删除对象的速度较慢。
List<String>list = new ArrayList<String>();
LinkedList类
该类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,经常需要向集合中插入、删除对象时,使用LinkedList类实现的List集合的效率较好;但对于随机访问集合中的对象,使用LinkedList类实现List集合的效率较慢
List<String>list2 = new LinkedList<String>();
使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。
List list = new ArrayList();
List list2 = new LinkedList();
2.Set接口的实现类
要使用Set集合,通常情况下需要声明为Set类型,然后通过Set接口的实现类来实例化。Set接口的实现类常用的有HashSet和TreeSet类。
Set<String> collSet = new HashSet<String>();
Set<String> collSet2 = new TreeSet<String>();
由于Set集合中的对象是无序的,遍历Set集合的和结果与插入Set集合的顺序并不相同
3.Map接口的实现类
Map接口常用的实现类有HashMap和TreeMap。通常建议使用HashMap实现类实现Map集合。
由HashMap类实现的Map集合对于添加和删除映射关系效率更高。
HashMap是基于哈希表的Map接口的实现,HashMap通过哈希码对其内部的映射关系进行快速查找。
TreeMap中的映射关系存在一定的顺序,如果希望Map集合中的对象存在一定的顺序,应该使用TreeMap类实现Map集合
HashMap类
允许使用null值和null键,但必须保证键的唯一性
通过哈希码可实现快速查找
不保证映射顺序,特别是不保证该顺序恒久不变
Map map = new HashMap();
TreeMap类
不仅实现了Map接口,还实现了java.util.SortedMap接口,因此具有一定的顺序
由于是根据对象按照一定的顺序输出的,因此不允许键对象是null
TreeMap treemap = new TreeMap();