在寫實驗的時候,想將乙個集合中的元素全部都新增到另乙個集合中,為了不增加時間複雜度,拒絕採用迭代時乙個乙個新增的方法;被身邊的大佬提醒,可以使用addall方法,才恍然。但是,在列表向列表中加入元素時,加入的順序是什麼樣的呢?為此做了下面的乙個小測試:
新建乙個list列表(為了方便觀察加入順序,就簡單讓其儲存數字的字串形式了)向其中加入0-99這100個數字;然後繼續建立要加入的列表list2,向其中加入乙個元素;最後將list中的元素採用addall的方法加入list2中,檢測輸出的結果順序。**如下:
list
<
string
>
list
=new arraylist<>();
for (int i =
0; i <
100; i++)
list
<
string
> list2 =
new arraylist<>();
list2.add("a");
list2.addall(list);
system.out.println(list2);
上述**的輸出為:
[a, 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 , 93 , 94 , 95 , 96 , 97 , 98 , 99 ]由此可見,addall方法加入的列表元素的順序是按照原來的順序向後加入的。
最後總結一下:碰到一些不懂的api,與其問其他人,不如花一點時間寫乙個簡單的測試。測試雖然簡單,但記憶卻更加深刻。
Java中 List的遍歷
對list的遍歷有三種方式 listlist new arraylist list.add new a list.add new a 第一種 for iteratorit list.iterator it.hasnext 這種方式在迴圈 執行過程中會進行資料鎖定,效能稍差,同時,如果你想在迴圈過程中...
Java中List集合的遍歷
一 對list的遍歷有三種方式 listlist new arraylist list.add testone list.add testtwo 第一種 for iteratorit list.iterator it.hasnext 這種方式在迴圈執行過程中會進行資料鎖定,效能稍差,同時,如果你想在...
java中List集合的比較
list集合 list是乙個介面,它的父類介面時collection list的實現類 arraylist 陣列實現 linkedlist 鍊錶實現 vector 也是陣列實現 arraylist 和 linkedlist 1 實現不同,乙個是陣列實現,乙個是鍊錶實現 2 效率不同,arraylis...