《Java核心技术》复习笔记 - 第十三章 集合
Java集合类库将接口interface和实现implementations分离,先看看java集合框架中的接口
Collection接口扩展(extends)了Iterable接口,interface Iterable<T>,实现这个接口允许对象成为 "foreach" 语句的目标。该接口只提供了一个返回迭代器的方法Iterator<T>iterator()
就像C++ STL里面那样,迭代器的设计是容器设计者的责任,因为不同的容器其遍历方式是不一样的。
Iterator接口如下:
public interface Iterator<E>
{
boolean hasNext() //如果仍有元素可以迭代,则返回 true。
E next(); //返回迭代的下一个元素。
void remove(); //从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
}
注意迭代器next对元素的遍历过程,next返回迭代器越过的元素,同时注意remove的使用,删除最后一个访问的元素。
ListIterator extends Iterator,是一个可以双向遍历的迭代器,包含previous和hasPrevious方法。RandomAccess为一个标记接口(不含任何方法),Vector就实现了该接口,表示可以进行随机访问。
Collection接口表示的是一个集合的概念,也就是说元素可以重复。Set表示的是一个不包含重复元素的集,并且最多包含一个 null 元素。而List表示有序的 collection,与 set 不同,列表通常允许重复的元素。Queue接口表示的是队列的概念,先进先出,Deque表示的是双端队列,可以两头插入和删除。Map表示的是映射表的概念。
java集合框架中的类:
java集合框架中的遗留类: