集合框架總結筆記二

2022-08-01 20:57:15 字數 1940 閱讀 3999

關於迭代器

iterator(迭代器)是乙個專門用於取出collection集合中元素的介面,它以內部類的方式封裝在collection介面的實現類中,根據collection介面各個實現類的資料結構不同,有著不同實現方式。而在collection介面中定義取出iterator物件的抽象方法。迭代器的出現統一了取出collection集合元素的過程。iterator介面中有hashnext()、next()和remove()方法。在使用迭代器迭代元素時,只能從前向後順序迭代。

hasnext()

如果仍有元素可以迭代,則返回 true。(換句話說,如果 next 返回了元素而不是丟擲異常,則返回 true)。 

返回:如果迭代器具有多個元素,則返回 true。

next()

返回迭代的下乙個元素。 

返回:迭代的下乙個元素。

丟擲:nosuchelementexception- 沒有元素可以迭代。

void remove()

從迭代器指向的 collection 中移除迭代器返回的最後乙個元素(可選操作)。每次呼叫 next 只能呼叫一次此方法。如果進行迭代時用呼叫此方法之外的其他方式修改了該迭代器所指向的 collection,則迭代器的行為是不確定的。 

丟擲:unsupportedoperationexception- 如果迭代器不支援 remove 操作。

illegalstateexception- 如果尚未呼叫 next 方法,或者在上一次呼叫 next 方法之後已經呼叫了 remove 方法。

listiterator系列表迭代器

listiterator(列表迭代器)是乙個專門用於迭代list集合中元素的介面,它繼承自iterator介面,但是由於list集合元素有索引這一特殊性,listiterator不僅具有iterator中3個方法,還有add(),remove(),previous()等方法,不僅能在迭代過程中對集合中的元素進行增刪或修改,還能反向迭代。

void add(e e)

將指定的元素插入列表(可選操作)。該元素直接插入到 next 返回的下乙個元素的前面(如果有),或者 previous 返回的下乙個元素之後(如果有);如果列表沒有元素,那麼新元素就成為列表中的唯一元素。新元素被插入到隱式游標前:不影響對 next 的後續呼叫,並且對 previous 的後續呼叫會返回此新元素(此呼叫把呼叫 nextindex 或 previousindex 所返回的值增加 1)。 

引數:e- 要插入的元素。

丟擲:unsupportedoperationexception- 如果列表迭代器不支援 add 操作。

classcastexception- 如果指定元素的類不允許該元素新增到此列表。

illegalargumentexception- 如果此元素的某個方面不允許該元素新增到此

remove

void remove()

從列表中移除由 next 或 previous 返回的最後乙個元素(可選操作)。對於每個 next 或 previous 呼叫,只能執行一次此呼叫。只有在最後一次呼叫 next 或 previous 之後,尚未呼叫 listiterator.add 時才可以執行該呼叫。 

指定者:

介面 iterator

中的 remove

丟擲:unsupportedoperationexception- 如果列表迭代器不支援 remove 操作。

illegalstateexception- 既沒有呼叫 next 也沒有呼叫 previous,或者在最後一次呼叫 next 或 previous 後呼叫了 remove 或 add。

previous()

返回列表中的前乙個元素。可以重複呼叫此方法來迭代列表,或混合呼叫 next 來前後移動(注意交替呼叫 next 和 previous 將重複返回相同的元素)。 

返回:列表中的上乙個元素。

丟擲:nosuchelementexception- 如果沒有可迭代的上乙個元素。

java集合框架總結(二)

collection 介面是 list set 和 queue 介面的父介面,該介面裡定義的方法既可用於操作 set 集合,也可用於操作 list 和 queue 集合.用於表示任何物件或元素組。想要盡可能以常規方式處理一組元素時,就使用這一介面。框架結構如下 collection介面 set介面 ...

集合框架總結

list 儲存有序,有索引,可以重複 arraylist 底層是陣列實現的,執行緒不安全,查詢和修改快,增和刪較慢 linkedlist 底層是鍊錶實現的,現成不安全,增和刪較快,查詢和修改較慢 vector 底層是陣列實現的,現成安全,增刪改查都較慢 如何查詢和修改多,用arraylist 如果增...

集合框架總結

問題1 集合和陣列的區別?collection主要有三個子介面 set 表示不允許有重複元素的集合,且無序 list 表示允許有重複元素的集合,且有序 queue 佇列,先進先出,jdk1.5新增,queue主要用於儲存資料,而不是處理資料 stack 繼承自vector,實現乙個後進先出的堆疊。特...