对应第8章新集合部分
新集合主要包含两个明确的概念:
1、集合(Collection):存储一组单独的元素,有两个子类:其中List(列表)按顺序容纳元素,而Set(集)不包含任何重复元素。
2、映射(Map):存储“键–值”对,Map可以返回存储key的一个Set,一个包含value值的List,或包含“键–值”对的List。
Map可以扩展到多维,Map里包含其他Map即可。
主要看:Collection,List,Set,Map,Iterator ,Comparable
1、Collection接口
Collection是最基本集合接口,它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List
2、 Set接口
Set接口继承于Collection接口,它没有提供额外的方法,但实现了Set接口的集合类中的元素是无序且不可重复。
特征:无序且不可重复。
3、 List接口
List接口同样也继承于Collection接口,List接口的集合类中的元素是有序且可重复。
两个重要的实现类:ArrayList和LinkedList
1.ArrayList特点是有序可重复的
2.LinkedList是一个双向链表结构的。
4、Map接口
Map也是接口,该接口描述了从不重复的键到值的映射。Map接口用于维护键/值对(key/value pairs)。
特征:它描述了从不重复的键到值的映射。
两个重要的实现类:HashMap和TreeMap
1.HashMap,中文叫散列表,基于哈希表实现,特点就是键值对的映射关系。一个key对应一个Value。HashMap中元素的排列顺序是不固定的。更加适合于对元素进行插入、删除和定位。
2.TreeMap,基于红黑书实现。TreeMap中的元素保持着某种固定的顺序。更加适合于对元素的顺序遍历。
5、反复器(Iterator)
是枚举类(Enumeration)的升华,更好用。
任何集合都可以生成一个反复器,用 iterator()方法,且生成的反复器与原对象互为引用
方法有:
hasNext() next() remove()
// 线性表pets
List<Pet> pets = Pets.arrayList(12);
// 遍历线性表
for(Pet p : pets)
System.out.print(p.id() + ":" + p + " ");
System.out.println();
// 由线性表pets生成的反复器it
Iterator<Pet> it = pets.iterator();
// 遍历反复器
while(it.hasNext()) {
Pet p = it.next();
System.out.print(p.id() + ":" + p + " ");
}
System.out.println();
// An Iterator can also remove elements:
// 此处是引用,如果it变则pets也变
it = pets.iterator();
for(int i = 0; i < 6; i++) {
it.next();
it.remove();
}
System.out.println(pets);
// 注意,在最后一轮循环后,输出的pets只剩6个元素了
6、Comparable接口
Comparable可以用于比较的实现,实现了Comparable接口的类可以通过实现comparaTo方法从而确定该类对象的排序方式。
参考:http://blog.csdn.net/jiuqiyuliang/article/details/32697903