Java原始碼學習之List

2021-08-19 22:50:43 字數 1218 閱讀 8184

是一種有序的容器(也被稱為序列)。使用者可以精確地控制每一元素在list中的插入位置。使用者可以通過元素的索引獲得該元素並且搜尋list中的元素。

不同於set,list允許重複的元素。

list介面在collection介面之外對iterator,add,remove,equals,hashcode方法增加了額外的規定。

list介面提供了四種通過索引獲取元素的方法。這些操作的執行的時間可能與索引值成比例(比如linkedlist)。因次當呼叫者不知道方法的具體實現時,最好通過索引迭代所有元素。

list介面提供了一種特別的迭代器:listiterator,它除了iterator介面提供的常規操作外還允許元素的插入、替換和雙向獲取。有一種方法可以獲取從list某一特定位置開始的迭代器。

list介面提供了兩種方法搜尋特定的物件。從效能角度看,這些方法應當謹慎使用。在很多實現中,它們都執行大代價的線性搜尋。

list介面提供了兩種方法來有效地在list的任意位置插入和刪除多個元素。

注意:當list包含其本身作為元素時,要特別小心equals和hashcode不再在此list上有良好的定義。

default void replaceall(unaryoperatoroperator): 將operator應用在各元素上並代替原元素。

default void sort(comparator<? super e> c): 按照comparator指定的順序對list排序。

e get(int index): 返回list內特定位置的元素。

e set(int index, e element): 使用特定元素代替list中特定位置的元素。返回該位置的原元素。

void add(int index, e element): 在list中的特定位置插入特定元素。原元素及之後的元素右移。

void remove(int index): 刪除list中特定位置的元素,其餘元素左移。返回被刪除的元素。

int indexof(object o): 返回list中特定元素第一次出現的索引,如果不存在則返回-1.

int lastindexof(object o): 返回list中特定元素最後一次出現的索引,如果不存在則返回-1.

listsublist(int fromindex, int toindex): 返回list在[fromindex, toindex)之間的部分。若fromindex於toindex相等,則返回空。返回list的改變不會反應到當前list,反之亦然。

java原始碼解析 List

an ordered collection 有序集合 list 的類資訊 public inte ce list extends collection collection 的類資訊 定義基本的method public inte ce collection extends iterable ite...

STL原始碼分析之List

list是個環形雙向鍊錶,裡面的迭代器型別是bidirectional iterator tag,可以雙向移動,不想vector裡可以隨機訪問。同時刪除或新增結點對其他的迭代器無影響。list也有sort函式,我們知道sort函式只支援隨機訪問型迭代器,所有它的sort是自己另外宣告的。下面是原始碼...

List原始碼分析

list 是繼承colection的介面 我們主要學習他的實現類 arraylist 和 linkedlist arraylist是基於陣列實現的 與陣列不同的是 它可以存放不同的資料型別的資料而且長度不定 我們分析一下他的底程實現 新增過程 public boolean add e e 如何做到長...