數據結構與算法-->表

這裏所說的表指的是鏈表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

未完待續......效率

相關文章
相關標籤/搜索