我有一個數組列表(稱爲A)。我有另一個數組列表,它也被填充(稱爲B)。Concat兩個填充陣列列表不覆蓋任何東西?
A具有 B具有3個元素
是否有可能爲我添加所有B的元素A的,使B的元素從圖6(A + 1的長度)開始,總的5種元素8個元素。我希望能夠做到這一點,而不是任何複雜的循環,但內置的方法?
此外,表現明智,這種想法有多糟?(如果它不好)?
謝謝
我有一個數組列表(稱爲A)。我有另一個數組列表,它也被填充(稱爲B)。Concat兩個填充陣列列表不覆蓋任何東西?
A具有 B具有3個元素
是否有可能爲我添加所有B的元素A的,使B的元素從圖6(A + 1的長度)開始,總的5種元素8個元素。我希望能夠做到這一點,而不是任何複雜的循環,但內置的方法?
此外,表現明智,這種想法有多糟?(如果它不好)?
謝謝
我相信List.addAll(索引,集合)方法應該做你需要的。
在您提到的尺寸時,不應該爲您顯示性能點。即使是2個數量級也不是問題。
編輯:我仔細檢查了ArrayList.addAll()的實現。它的效率和效率一樣。它將進行單一增長以容納新元素,並使用System.arrayCopy來移動元素。
List.addAll()
服務表現的角度來看,這是不可能會5 + 3 太大的影響如果有更大的,你可以創建正確大小的新ArrayList
第一,以避免不必要的分配。或者,使用LinkedList
,它將具有不同的性能特徵。
編輯:正如其他人所解釋的那樣,ArrayList.addAll()
與您所能得到的一樣好。
我強烈建議不要使用LinkedList進行此操作。它分別分配每個新節點並將它們附加到列表的末尾。對於大多數大小,它不會像ArrayList那樣高效,對於這個特定的操作。當然有病理性病例,但我會堅持ArrayList。 – rfeak 2011-01-11 00:14:34