这里所说的表指的是链表list。表有两种实现方式:java
一、数组实现:适合查找可是不适合删除和插入。固然这只是相对而言。数组
二、链表实现:适合插入和删除可是不适合查找。code
java collections API中的表:接口
Collection接口:rem
public Interface Collection<AnyType> extends Iterable<AnyType>{ int size(); boolean isEmpty(); void clear(); boolean contains(AnyType x); boolean add(AnyType x); boolean remove(AnyType x); java.util.Iterator<AnyType> iterator(); }
接口扩展了Iterable接口,实现Iterable接口的类能够使用加强for循环。it
实现Iterable接口的集合必须实现iterator方法,返回一个Iterator类:io
public interface Iterator<AnyType>{ boolean hasNext(); AnyType next(); void remove(); }
Iterator接口的remove方法能够删除next方法返回的最新元素。remove后不能在紧接着remove必须在下一次next以后才能remove。虽然Collection也有remove方法,可是使用Iterator的remove方法效率更高也更合适。for循环
使用Iterator迭代器的时候应该注意:若是正在被迭代的集合在结构上发生了变化(add,remove,clear)那么迭代器将不在合法,将抛出ConcurrentModificationException异常。可是在Iterator内部调用remove方法则没有问题。class
未完待续......效率