Collection 一个独立元素的序列。
1.泛型作用有不会将错误类型放到容器中。取出元素时也不必强制转型。
List 必须按照插入的顺序保存元素。
建立数字索引与对象关联。
ArrayList 随机访问元素。中间插入和移除元素较慢。
LinkedList 实现了接口List和Queue。通过较低的代价在List中间进行移除和插入操作。
各种Queue及Stack的行为可由LinkedList提供支持。
总结:如果需要进行大量的随机访问用ArrayList,经常要在表中插入和删除操作用LinkedList
Set 不能有重复的元素
HashSet 常用 最快的获取元素方式。
TreeSet 比较结果的升序来存储元素。
LinkedHashSet 按照添加的顺序来保存元素
Map 一组成组的键值对
Queue 只允许在容器的一端插入对象,并从另一端移除对象。
常用方法:
Collections.addAll();
Arrays.asList() 来初始化容器。
Collection<Integer> ci = newArrayList<Integer>(Arrays.asList(1,2,3,4));
Collections.addAll(ci,7,8,9);//自动包装
Contains()
removeAll()
retainAll() 方法行为都依赖equals()方法。
迭代器:只能向前移动
Iterator<Integer> it = ci.iterator();
while(it.hasNext()){
int i =it.next();//自动拆包
System.out.println(i);
}
ListItrerator: 1.可以双向移动。
2. 光标位置 始终位于调用 previous() 所返回的元素和调用next() 所返回的元素之间
Stack 后进先出的容器。 “后进先出的容器”
1.linkedList具有实现栈的所有功能的方法可以直接将linkedList作为栈使用
2.直接用Stack类
Queue 队列是先进先出的容器linkedList提供的方法以支持队列的行为。并实现了Queue的接口。通过将LinkedList向上转型为Queue
PriorityQueue默认的排序使用队列,也可以自己提供一个comparator来修改这个顺序。
ForEach 该接口引入新的Iterable的接口。只要是实现了Iterable的类都可以用于foreach语句中。
不推荐用过时的Vector,Hashtable,Stack
参考资料:Java编程思想第四版