JAVA容器类类库的用途是"保存对象",并将其划分为两个不同的概念:
1、Collection。一个独立的元素序列,这些元素都服从一条或多条规则。
2、Map。一组成对的"键值对"对象,允许你使用键来查找值。
List
List承诺可以将元素维护在特定的序列中。
两种基本类型的List:
1、基本的ArrayList,它用于随机访问元素,但是在List的中间插入和移除元素时较慢。
2、LinkedList,它通过代待价较低的在List中间进行的插入和删除操作,提供了优化的顺序访问。
迭代器
迭代器是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。此外,迭代器通常被称为轻量级对象:创建它的代价更小。
Java的Iterator只能单向移动,这个Iterator只能用来:
1、使用方法iterator()要求容器返回一个Iterator。iterator将准备好返回序列的第一个元素。
2、使用next()获得序列中的下一个元素。
3、使用hasNext()检查序列中是否还有元素。
4、使用remove()将迭代器新近返回的元素删除。
ListIterator
ListIterator可以双向移动。还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引,并且可以使用set()方法替换它访问过的最后一个元素。
LinkedList
LinkedList在执行插入和移除时比ArrayList更高效。
Stack
"栈"通常是指"后进先出"(LIFO)的容器。有时栈也被称为叠加栈,因为最后"压入"栈的元素,第一个"弹出"栈。
Set
Set不保存重复的元素。Set中最常被使用的是测试归属性,你可以很容易地询问某个对象是否在某个Set中。Set是基于对象的值来确定归属性的。TreeSet将元素存储在红-黑树数据结构中,而HashSet使用的是散列函数。
Map
Map以键-值对的方式存储数据。
Queue
队列是一个典型的先进先出(FIFO)的容器。
PriorityQueue
先进先出描述了最典型的队列规则。队列规则是指在给定一组队列中的元素的情况下,确定下一个弹出队列元素的规则。
Collection和Iterator
Collection是描述所有序列容器的共性的根接口,它可能会被认为是一个"附属接口",即因为要表示其他若干个接口的共性而出现的接口。
类名之后的<T>告诉编译器这将是一个参数化类型,而其中的类型参数,即在类被使用时将会被实际类型替换的参数,就是T。