Java List接口

Interface List 在Java.util包中,繼承自Collection,Iterable。

實現List接口的類有以下幾種

AbstractListAbstractSequentialList,ArrayList,AttributeList,CopyOnWriteArrayList,LinkedList,RoleList,RoleUnresolvedList,Stack,Vector

其中常用的有ArrayList,LinkedList,Vector

List 是有序的,元素可以重復

ArrayList以數組的形式存儲數據,查找快,增刪慢

LinkList以鏈表的形式存儲數據,查找慢,增刪快

Vector和ArrayList類似,區別是線程安全,查找刪減效率低。



常用方法:

boolean ? ??add(E?e) ?在List的尾部加入元素

void ? ?add(int index,Eelement) ? 指定位置加入元素

boolean? addAll(CollectionE> c)/addAll(int?index,CollectionE>?c) ? ?加入集合中的所有元素

E? ? ??get(int index) ? ?返回index處的值

E? ? ??remove(int index) ? 刪除index處的值

E? ? ? set(int index,Eelement) ? 替換index處的值

int ? ? size() ? 返回List中的元素個數

其中LinkList中有幾個特別的方法

void ??addFirst(E??e) ? 在list首部插入

void ? ?addLast(E??e) ?在list尾部插入

E ? ? ? ? peek() ?檢索list的第一個元素,但不刪除

E? ? ? ? ? poll()? ? 檢索list的第一個元素,并刪除

E? ? ? ? ? pop() ? 從此列表中的堆棧中彈出一個元素。

void? ? ? push(E? e)? 將元素推送到由此列表表示的堆棧上。


用法

List接口的實現類常用的就是ArrayList和LinkedList,使用這兩個類當然要先實例化:

List<E> ?list = new ArrayList<E>();

List<E>? list = new LinkedList<E>();

這里的List當然可以替換成ArrayList和LinkedList,我覺得應該是 里氏替換原則:所有引用基類的地方必須能透明地使用其子類的對象。

然后通過list實例來調用以上方法即可。


遍歷List的三個方法

foreach ? ?for(String s : list){ ?}

for循環 ? ?for(int i=0;i<list.length;i++){ ?}

Iterator迭代器? 首先獲取Iterator實例? Iterator it = list.iterator()? 然后在while(it.hasNext()){ ? }體內執行it.next()


總結

對List接口作了簡要的介紹,一起學習,一起成長。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容