Arraylist 學習筆記

2021-08-29 22:55:56 字數 3541 閱讀 3028

/*** 比如collection介面的設計一樣,可能會定義乙個容器需要的相關方法,但是他在提供乙個abstractcollection的抽象方法,把相關能通用的方法進行封裝實現,

* 後面的容器直接繼承abstractcollection,將需要重寫的方法實現,其他abstractcollection實現的方法就不用再次實現:但是注意abstractcollection的add方法因為考慮到執行緒安全問題是直接丟擲的異常

*  必須重寫的方法,因為在繼承的abstractcollection中,方法是用的abstract修飾的,沒有方法體。

*///public class arraylist_1

*         }

*         collections.sort(list, comparator);

*         2、使用arraylist.sort()方法:

*         arraylist.sort(new comparator()

*         })

*    8、查詢元素所在位置

*          public int indexof(e e);

*    9、是否包含某個元素

*          public boolean contains(e e);

*    10、迴圈

*      1、for

*      2、foreach

*      3、iterator

*    對於為什麼需要三種遍歷方式的理解:

*        *  1、為什麼需要iterator:

*        *      a: for迴圈已經能夠對集合進行遍歷,但是這個遍歷的前提是我們不需知道集合裡元素的具體細節或者說元素的長度等資訊,而iterator就是為了隱藏集合的內部細節,

*        *      讓集合的內容對使用者完全透明

*        *      b: 在使用for的過程中是可以刪除和新增的,但是這會造成list的size變化,很容易造成不必要的bug.

*        *      c: foeeach其實是對iteartor的一層封裝,但是在foreach的迴圈中是不允許刪除和新增元素的。在看是foreach的時候,就相當於鎖住了list的size

*        *      d:iterator的使用中相當於使用指標

*           2、對效能的比較暫時沒有出結果,可能是自己的比較方式有問題()

** @param args

*/public static void main(string args)

//2、foreach

for(object a : list_for)

//3、iterator

iteratoriterator = list_for.iterator();

while(iterator.hasnext())

system.out.println("list_for---iterator:" + a);

}system.out.println("list_for---iterator的刪除以後:" + list_for);

//list_for---iterator:2

//list_for---iterator:3

//list_for---iterator:4

//list_for---iterator:5

//list_for---iterator:6

/*** 對於為什麼需要三種遍歷方式的理解:

*  1、為什麼需要iterator:

*      a: for迴圈已經能夠對集合進行遍歷,但是這個遍歷的前提是我們不需知道集合裡元素的具體細節或者說元素的長度等資訊,而iterator就是為了隱藏集合的內部細節,

*      讓集合的內容對使用者完全透明

*      b: 在使用for的過程中是可以刪除和新增的,但是這會造成list的size變化,很容易造成不必要的bug.

*      c: foeeach其實是對iteartor的一層封裝,但是在foreach的迴圈中是不允許刪除和新增元素的。在看是foreach的時候,就相當於鎖住了list的size

*      d:iterator的使用中相當於使用指標

*//*list_for.clear();

for(int i = 0; i < 10000; i++)

//1、for

long begin_for = system.currenttimemillis();

for(int i = 0; i < list_for.size(); i++)

long end_for = system.currenttimemillis();

system.out.println("for 迴圈 耗時:" + (end_for - begin_for));

//2、foreach

long begin_foreach = system.currenttimemillis();

for(object a : list_for)

long end_foreach = system.currenttimemillis();

system.out.println("end_foreach 迴圈 耗時:" + (end_foreach - begin_foreach));

//3、iterator

long begin_iterator = system.currenttimemillis();

iteratoriterator1 = list_for.iterator();

while(iterator1.hasnext())

long end_iterator = system.currenttimemillis();

system.out.println("iterator 迴圈 耗時:" + (end_iterator - begin_iterator));*/}};

collections.sort(list_user, comparator);

system.out.println("list--的排序後:" + list_user);*/

//2、

list_user.sort(new comparator()

});system.out.println("list--的排序後:" + list_user);}{

//一些查詢是否包含的api

list list_c = new arraylist();

list_c.add(1);

list_c.add(2);

list_c.add(3);

list_c.add(4);

boolean result = list_c.contains(2);

system.out.println("---contains:" + result); //---contains:true

int a = list_c.indexof(2);

system.out.println("list_c--indexof:" + a);// list_c--indexof:1

學習筆記ArrayList原始碼學習

arraylist原始碼學習 繼承自abstractlist,實現了list介面 private static final int default capacity 10 預設容量為10 transient object elementdata 底層使用object陣列來儲存資料 arraylist...

Java學習筆記 集合Arraylist

arraylist集合 arraylist list new arraylist 可以使object型也可以是類。通過例子說明arraylist的使用方法 arraylist list new arraylist list.add i 向list中新增乙個值object型的i值,list.add i...

Java學習筆記之ArrayList

arraylist實現了list介面。1.構造方法public arraylist 2.私有變數defaultcapacity empty elementdataprivate static final object defaultcapacity empty elementdata 由此可見,ar...