Iterator remve方法詳解

2021-10-09 22:42:55 字數 1362 閱讀 9662

前言

通過詳解remove()方法實現,避免在使用時遇到問題。 iterator是乙個介面,主要方法有hasnext()、next()、remove()。其方法主要是由實現類實現的,這裡以常用的arraylist為例

iterator的remove方法怎麼用?

每次在呼叫remove方法前,必須要先呼叫它的next方法。為什麼呢?

//獲取(arraylist)的iterator

iterator

iterator = list.

iterator()

;iterator.

next()

;iterator.

remove()

;

以arraylist為例,iterator的實現

呼叫 list 的 iterator 方法,返回arraylist的內部類itr例項(實現了iterator介面的方法)

//arraylist的iteator方法

public iterator

iterator()

itr維護的兩個指標(cursor、lastret)

//返回下乙個元素的索引,初始為0

int cursor;

//返回上乙個元素的索引,初始為-1(也就是空)

int lastret =-1

;------

----

----

----

----

----

----

----

----

----

----

----

----

/***itr的next方法實現

*int i = cursor; cursor = i + 1;

*lastret = i;

*/public e next()

/***itr的remove方法實現

*cursor = lastret;

*lastret = -1;

*/public

void

remove()

catch

(indexoutofbound***ception ex)

}

這也就是為什麼每次呼叫remove方法前,必須先呼叫next方法!

小白初來乍到,多多指教

方法的呼叫 this方法 構造方法

1 呼叫者和被呼叫者方法位於同一類中,呼叫形式如下 this 方法名 在大多數情況下,關鍵字this可以忽略 呼叫者位於被呼叫方法所在類的外部 物件名.方法名或者類名.方法名 抽象類只能作為父類,不能例項化。只能被繼承 抽象方法是一種只有方法宣告而沒有方法體定義的特殊方法,最後有乙個分號 而沒有方法...

例項方法 靜態方法 類方法

首先新建乙個日期date類,屬性為年,月,日,tomorrow 是例項方法,這個最常見,比較簡單,例項方法的第乙個引數是例項物件self 當我們傳入的年月日是2018 6 4這樣的形式,我們就需要先進行字串處理,在這裡使用了元組的拆包 這是最基本的方式,但是這樣寫會有乙個問題,每次傳參都需要進行字串...

類方法 物件方法 原型方法

js類方法,物件方法,原型的理解 function people name 類方法 people.run function 原型方法 people.prototype.introducechinese function 測試 var p1 new people windking p1.introdu...