集合框架的体系
Collection:
最基本的集合接口。
遍历collection集合:调用iterator()的方法,返回迭代子,可由迭代子直接访问每个元素,代码如下:
Iterator it = collection.iterator(); // 获得一个迭代子
while(it.hasNext()) {
Object obj = it.next(); // 得到下一个元素
}
继承collection的接口主要有:list,set。
list:
继承自collection接口,元素排列有序,可以根据索引值访问元素,同时还能插入元素,移除元素等。
list允许有相同的元素,允许null元素。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
下面的子接口有:arrayList,linkedList,vector,stack。
LinkedList:
继承自list接口,允许有相同的元素,允许null元素。
此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
ArrayList:
继承自list接口,允许有相同的元素,允许null元素。
可以根据需要改变大小。
没有同步。
Vector:
继承自list接口,允许有相同的元素,允许null元素。
同步的。
元素类型可以不一样。
stack:
继承自vector,实现一个后进先出的堆栈 。
主要有五个方法:push(),pop()进出栈;peek()得到栈顶的元素;empty()检测堆栈是否为空;search()寻找某个元素在栈中的位置。
set:
继承自collection接口,元素不可重复。
map:
Map提供key到value的映射 ,并且为一一对应的关系。
key不能重复。
子接口三个:HashTable,HashMap,WeadHashMap。
Hashtable:
继承自map接口,元素不能为空。
添加元素方法:map.put(Object,Object).
根据key得到值的方法:map.get(key).
HashMap:
继承自map接口,与Hashtable相似。
元素可以为空。
非同步。