集合4-AbstractList

AbstractList繼承自AbstractCollection,并實(shí)現(xiàn)了List接口,實(shí)現(xiàn)了List接口中大部分函數(shù),從而方便其他類實(shí)現(xiàn)List接口

iterator方法



需要注意的

  1. remove方法刪除上次調(diào)用next或者previous返回的集合元素,在調(diào)用remove方法之前,如果沒有調(diào)用一次next或者previous方法,或者在調(diào)用了next、previous方法之后已經(jīng)調(diào)用過了remove方法或add方法,換句話說距離本次調(diào)用remove方法最近的方法不是next、previous則拋出IllegalStateException異常。這是因?yàn)?strong>在每一次調(diào)用next或者previous時(shí)會(huì)將lastRet設(shè)置為剛要返回的元素索引,而每一次執(zhí)行remove方法都將lastRet設(shè)置為 -1 標(biāo)識(shí)不能在刪除元素。
  2. 在迭代期間集合發(fā)生改變,則拋出ConcurrentModificationException異常。

ListIterator方法



注意:

  1. set方法:替換上一次調(diào)用next或previous集合的返回值,在調(diào)用set方法之前,如果沒有調(diào)用一次next或者previous方法,或者在調(diào)用了next、previous方法之后已經(jīng)調(diào)用過了remove方法或add方法,換句話說距離本次調(diào)用set方法最近的方法不是next、previous則拋出IllegalStateException異常。
  2. add方法會(huì)將lastRet設(shè)置為-1,所以在add方法之后緊跟remove方法或者set方法都將拋出IllegalStateException異常。

這里看一下equals函數(shù)

可以看的出來

  • 兩個(gè)list對(duì)象引用相同,即都指向同一個(gè)堆對(duì)象,所以實(shí)際上是同一個(gè)物理對(duì)象,返回true
  • 兩個(gè)list對(duì)象 :(1)參數(shù)類型是List類型的實(shí)例或者是List子類的實(shí)例(接口和類具有相同繼承語(yǔ)義);(2)list的size相等;(3)對(duì)應(yīng)位置上的每個(gè)元素相等,通過元素的equals判斷;滿足上述3個(gè)條件則返回true

hashCode函數(shù)

根據(jù)列表元素hash值來計(jì)算列表hash值,能夠保證通過equals判斷相等的list的hashCode也相等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • java筆記第一天 == 和 equals ==比較的比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量...
    jmychou閱讀 1,656評(píng)論 0 3
  • Java集合框架 Java平臺(tái)提供了一個(gè)全新的集合框架。“集合框架”主要由一組用來操作對(duì)象的接口組成。不同接口描述...
    小石38閱讀 456評(píng)論 0 0
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語(yǔ)閱讀 4,053評(píng)論 0 7
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,740評(píng)論 18 399
  • Collection接口 Collection接口是所有集合的祖先類。他有兩個(gè)構(gòu)造方法,一個(gè)無參構(gòu)造,一個(gè)是帶Co...
    夜幕繁華閱讀 682評(píng)論 0 0

友情鏈接更多精彩內(nèi)容