集合框架原始碼分析一 介面篇

2021-06-09 02:19:57 字數 2827 閱讀 6994

一。iterable介面 

public inte***ce iterable

二。inte***ce iterator

public inte***ce iterator

三。inte***ce collection

public inte***ce collectionextends iterable

四。inte***ce list

public inte***ce listextends collection

*/int hashcode();

// positional access operations

/*** 返回list中指定位置的元素

* 如果index<0 || index>size() 則丟擲indexoutofbound***ception

*/e get(int index);

/*** 用element替換list中指定位置的元素

** 如果list,比如set,不支援此操作則丟擲unsupportedoperationexception

* 如果element型別使其不能被新增則丟擲classcastexception

* 如果給定的引數e為空並且list不允許空元素則丟擲nullpointerexception

* 如果index<0 || index>size() 則丟擲indexoutofbound***ception

*/e set(int index, e element);

/*** 在指定位置插入乙個元素element,並把隨後的元素向右移

* 異常丟擲同上面的set方法

*/void add(int index, e element);

/*** 移除list指定位置的元素,並把隨後的元素向左移

*/e remove(int index);

// search operations

/*** 如果list中含有與o相等的元素,則返回第乙個的位置

* 否則返回-1表示集合中不含此元素

** 如果o物件型別與list元素型別不相容則丟擲classcastexception

* 如果給定的引數e為空並且list不允許空元素則丟擲nullpointerexception

*/int indexof(object o);

/*** 如果list中含有與o相等的元素,則返回最後乙個的位置

* 否則返回-1表示集合中不含此元素

*/int lastindexof(object o);

// list iterators

/*** 返回乙個listiterator

* 特點:適用於對list進行遍歷,包含乙個add(e e)方法,在遍歷時可在指定位置

* 新增元素,包含previous()方法,hasprevious()方法用於反向遍歷

* 下面將具體講解listiterator介面

*/listiteratorlistiterator();

/*** 返回乙個listiterator,在指定的位置開始迭代

* 如果index<0 || index>size() 則丟擲indexoutofbound***ception

*/listiteratorlistiterator(int index);

// view

/*** 獲取list的子範圍,子範圍包含fromindex但不包含toindex

* 你可以將任何操作作用於子範圍,並且它們能夠自動反應到list的情況

* 比如:l.sublist(10,19).clear(),子範圍的各個元素將自動從l中刪除。

*/listsublist(int fromindex, int toindex);

}五。inte***ce listiterator

public inte***ce listiteratorextends iterator

六。inte***ce set

public inte***ce setextends collection

七。inte***ce queue

public inte***ce queueextends collection

八。inte***ce sortedset

public inte***ce sortedsetextends set

九。inte***ce map

public inte***ce map

// comparison and hashing

/*** 比較兩個map是否相等

* 比較原則:

* 首先o是否是乙個map,即是否實現map介面

* 其次map是否含有相同的鍵值對,因為map是無序的所以對位置無要求

* 更加正式的來說m1.entryset().equals(m2.entryset())返回true則此方法返回true

*/boolean equals(object o);

/*** 返回map的hashcode值

* 計算公式:

* 為map.entryset返回的集合的各個entry元素的hashcode之和

*/int hashcode();}

十。inte***ce sortedmap

public inte***ce sortedmapextends map

十二。雙端佇列deque 

/*** 

* 雙端佇列,乙個線性集合,負責在佇列兩端插入和移除元素.

JDK原始碼閱讀 集合框架 List介面

list介面是collection介面最重要的兒子之一,也是我們常用的arrrylist類的超級老父親的老父親的老父親的。老父親。先看他的定義 public inte ce listextends collectionlist介面有以下特點,也就是說他的實現類有以下特徵,大家使用的時候注意 list...

集合框架原始碼分析 抽象類

public abstract class abstractcollectionimplements collection query operations 返回集合中元素的迭代器 public abstract iteratoriterator public abstract int size p...

bbs小專案整理(一)(介面整理篇)

1.首先講解一下這個小專案要實現的工能 在登入介面實現簡單的使用者輸入驗證,使用驗證碼放置惡意註冊 在登入成功後能在首頁左側顯示使用者的一些資訊,在右側顯示最新的五條訊息 發布訊息的介面 點選訊息標題進入檢視詳細訊息介面 在檢視詳細訊息介面的下方提供使用者回覆 總結以上就是要實現的幾個功能介面了 p...