1. 程式人生 > >資料結構與演算法-->表

資料結構與演算法-->表

這裡所說的表指的是連結串列list。表有兩種實現方式:

1、陣列實現:適合查詢但是不適合刪除和插入。當然這只是相對而言。

2、連結串列實現:適合插入和刪除但是不適合查詢。

java collections API中的表:

Collection介面:

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迴圈。

實現Iterable介面的集合必須實現iterator方法,返回一個Iterator類:

public interface Iterator<AnyType>{
 
    boolean hasNext();
    AnyType next();
    void remove();
}

Iterator介面的remove方法可以刪除next方法返回的最新元素。remove後不能在緊接著remove必須在下一次next之後才能remove。雖然Collection也有remove方法,但是使用Iterator的remove方法效率更高也更合適。

使用Iterator迭代器的時候應該注意:如果正在被迭代的集合在結構上發生了變化(add,remove,clear)那麼迭代器將不在合法,將丟擲ConcurrentModificationException異常。但是在Iterator內部呼叫remove方法則沒有問題。

未完待續......