1。集合框架的几个特性:高性能、易扩展、互用性以及对集成标准数组的支持。(事实上,C++中称为容器的东西在Java中称为集合)
2。迭代器(Iterator):提供了通用标准的访问集合元素的方式,即一次访问一个。因此,迭代器提供了一种列举集合内容的方法。并且,任何集合都实现了迭代器接口。
3。集合框架还包括映射接口和类。如Maps,用于存储键/值对。
4。集合接口Collection:集合框架的基础,包含add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray等基础方法。
5。List(序列)接口:使用基于0的索引,可以包含相同的元素。
6。Set 接口:集合中不允许有相同的元素。
7。SortedSet 接口:扩展Set接口,并声明为升序的集合。
8。ArrayList 类:扩展了AbstractList接口,实现List 接口。Java中数组是定长的,一旦建立,长度就不能改变(与C不同,Java的数组长度在初始化时是可以用参数指定的)。ArrayList类支持动态大小的数组。实际上,ArrayList是一个对象引用的变长数组。ArrayList是一个对象引用的变长数组(? http://community.csdn.net/Expert/topic/4574/4574525.xml?temp=.5809748 答:集合加的不是对象,而是引用,Vector也一样)。如以下程序输出为true:
public class test2 {
public static void main(String[] args) {
test2 t1 = new test2();
Vector ar = new Vector();
//ArrayList ar = new ArrayList();
ar.add(t1);
System.out.println(t1 == ar.iterator().next());
} }
9。LinkList 类:扩展AbstractSequentialList,实现List 接口,提供链表型的数据结构
10。HashSet 类:扩展AbstractSet,实现Set 接口,创建Hash表存储的集合。其最大的优点是由于使用了Hash表技术,即使是很大的集合,其基本操作时间也不会很长。HashSet 中元素顺序不一定。
11。LinkedHashSet :以元素插入的顺序来维护集合的链接表。(也就是说集合中的元素顺序与输入顺序一致)
12 。TreeSet:使用树接口存储,Set 接口的实现。对象以升序顺序存储。其访问和遍历顺序很快。
13。迭代器:Iterator和ListIterator(允许双向遍历和元素修改)。
14。RandomAccess接口:没有成员,但通过实现它,说明集合支持对元素的有效的随机访问。
15。映射接口:Map接口(基本方法get, put),SortedMap接口(以键的升序保存键/值对),Map.Entry接口(Map的entrySet方法,返回包含所有映射键值对的集合,集合的每个元素是一个Map.Entry对象)
16。映射类:HashMap类,TreeMap(树结构的Map实现,以排序方式存储键值对),LinkedHashMap(扩展HashMap,以元素插入的顺序维护链表)
17。比较器 Comparator接口:精确定义集合中元素的排序,需要在构造一个集合或者映射时就指定一个比较器对象。(初步学习)
18。集合算法:。。。
19。数组:Arrays类,提供了处理数组是很多有用的方法。
20。老版本的遗留类:遗留类都是同步的,但是集合类都不是同步的。遗留类有:Enumeration接口(被Iterator取代);Vector(用ArrayList取代);Stack(Vector的子类);Dictionary抽象类(类似映射);Hashtable(Dictionary的实现);Properties(Hashtable的子类,保存键/值都是字符串的情况)