集合类库(一):集合类库的基本框架
2009-09-18 00:00:00 来源:WEB开发网AbstractList (抽象类)
此类提供了List接口的骨干实现,也就是对List接口中大部分方法确定了实现途径和策略。比如上面的add(E o)方法被实现为:在当前List的末尾添加新数据。
Java代码
//在List的末尾插入新数据o
public boolean add(E o) {
add(size(), o); //实际上就是在列表最后一个元素之后插入,列表和数组一样从0开始索引
return true;
}
//在列表的index位置之前插入数据element
//具体实现由具体类来提供
public void add(int index, E element) {
throw new UnsupportedOperationException();
}
这里需要注意,AbstractList类的add(E o)方法只是提供了实现的途径和策略,其add(int index,E element)方法并没有具体实现,而是等待着子类来扩展。也就是说,如果子类扩展了add(int index,E element)的实现,就可以调用add(E o)方法来完成操作了。下面我们会看到:
LinkedList (标准具体类)
此类是JDK中具体的标准集合类,用来提供链表操作。
Java代码
public boolean add(E o) {
//在头接点之前插入
//由于LinkedList是双重循环列表,所以也就是插在了末尾。
addBefore(o, header);
return true;
}
private Entry<E> addBefore(E o, Entry<E> e) {
…..
}
//插入列表中的随机位置
//具体覆盖了AbstractList中的add(int , E)方法
public void add(int index, E element) {
addBefore(element, (index==size ? header : entry(index)));
}
更多精彩
赞助商链接