标签:
Collection实现类:
1. public abstract class AbstractCollection<E> extends Object implements Collection<E>:
实现了Collection类的基本框架,用来减少实现Collection接口的工作量。
为了实现一个不可修改的接口,需要继承该类并实现该接口的iterator和size方法。iterator方法返回的类iterator,必须实现hasNext和next方法。
为了实现一个可修改的接口,需要重写该类的add方法,否则会抛出UnsupportedOperationException异常。返回的迭代器类iterator必须实现remove方法。
就像Collection接口推荐的那样,该类一般需实现两个构造函数,一个是void参数,另一个是Collection入参。
主要方法:
public abstract Iterator<E> iterator():返回指向集合元素的迭代器;
public String toString():返回当前集合的字符串描述;
2. public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>:
该类实现list接口基本框架,主要针对随机访问数据存储方式,如数组。针对类似链表的顺序访问的数据,则更偏向于使用AbstractSequentialList类。
为了实现不可修改的链表,只需要继承该类并提供get(int),size()方法的实现。
为了实现一个可修改的链表,则需要额外重写set(int, E)方法,否则会抛出UnsupportedOperationException异常。如果链表是可变长度的,还需要额外重写add(int, E)和remove(int)方法。
此外,按照Collection接口所推荐的,通常需要提供一个void构造函数和collection构造函数。
跟其它抽象接口不同的是,该类不需要实现迭代器。迭代器和链表迭代器在下面这些随机访问函数里实现:get(int), set(int E), add(int E) and remove(int)
public abstract class AbstractQueue<E>extends AbstractCollection<E>implements Queue<E>:.
该类是Java Collections Framework成员之一。
3.
该类提供队列操作的基本实现。对于基类中不允许空元素的方法实现,该类进行了恰当的处理。方法add,move,element分别基于offer,poll,peak,这些方法通常会抛出异常而不是提示失败或者返回空。
当队列继承该类时,最少需要实现不允许插入空元素的Queue.offer(E)方法以及Queue.peek(), Queue.pool(), Queue.size(), 支持Iterator.remove()的Collection.iterator()方法。此外的方法也可以选择重写。如果不能满足上述条件,则可以考虑选择AbstractCollection的其它子类。
该类是Java Collection Framework成员之一。
标签:
原文地址:http://www.cnblogs.com/wmymartin/p/4868953.html