持有物件 3

2022-08-02 06:06:09 字數 1433 閱讀 5216

linkedlist也像arraylist一樣實現了基本的list介面,但是它執行某些操作(在list的中 間插入和移除)時比arraylist更高效,但在隨機訪問操作方面卻要遜色些。

linkedlist還新增了可以使其用作棧、佇列或雙端佇列的方法。

這些方法中有些彼此之間只是名稱有些差異,或者只存在些許差異,以使得這些名字在特定用法的上下文環境中更加適用(特別是在queue中)。

1)返回第乙個元素

getfirst和element完全一 樣,它們都返回列表的頭(第乙個元素),而並不移除它,如果list為空,則丟擲nosuchelementexception。

從原始碼來看:

public

e element()

peek方法與這兩個方式只是稍有差異,它在列表為空時返回null。

從原始碼來看

public

e peek()

2)移除元素

removefirst,remove,pop 也是完全一樣的, 它們移除並返回列表的頭,而在列表為空時丟擲nosuchelementexception。

poll稍有差異,它在列表為空時返回null。removelast移除並返回列表的最後乙個元素;他們底層都用的是unlinkfirst()

來看原始碼:

public

e removefirst()

public e remove()

public e pop()

public e poll()

3)增加元素

addfirst與add和addlast相同,它們都將某個元素插入到列表的首(尾)部。

linkedlist具有能夠直接實現棧的所有功能的方法,因此可以直接將linkedlist作為棧使用。不過,有時乙個真正的「棧」更能把事情講清楚:

public

class stack

public

t peek()

public

t pop()

public

boolean empty()

public

string tostring()

}

這裡通過使用范型,引入了在棧的類定義中最簡單的可行示例。類名之後的告訴編譯器這將是乙個引數化型別,而其中的型別引數,即在類被使用時將會被實際型別替換的引數,就是t。大體上,這個類是在宣告 我們在定義乙個可以持有t型別物件的stack。 stack是 用linkedlist實現的,而linkedlist也被 告知它將持有t型別物件。注意,push接受的是t型別的物件,而peek0和pop0將返回t型別的物件。peek方法將提供棧頂元素,但是並不將其從棧頂移除,而pop將移除並返回棧頂元素

持有物件(容器)

1。collection。list必須按插入的順序儲存元素,而set不能有重複元素。queue按照排隊規則來確定物件的順序。2。map。一組成對的鍵值對物件。3。array.aslist 接受乙個陣列或用逗號分隔的元素列表,將其裝換成乙個list物件。collections.addall 接受乙個c...

持有物件的管理(容器)

collection 存放單一的物件,map存放鍵值對。你可以用泛型制定插入的型別。使用的泛型的好處是在獲取,插入物件的時候,不必為型別的轉換而煩惱。特性 key value,鍵值對,用的非常多,能夠在開發中解決很多問題。使用的比較頻繁的是hashmap和hashset,基於雜湊的存放,效能也比較好...

持有物件(個人學習總結)

1.list arraylist與linkedlist區別 前者在隨機訪問元素方面有優勢,後者可以通過較低的代價進行插入與刪除。2.iterator迭代器iteratorit pets.inerator while it.hasnext 迭代器只能單向移動,迭代器統一了對容器的訪問 listiter...