2012-04-19 22 views
0

私は、例えば要素を持つArrayListを持っている:取得リスト要素

[a,b,c,d,e,f,g,h]; 

をしても、それはArrayListのを可能と最初のリストから削除し、再度、私は最初のリストからいくつかの要素の後を取る必要があります[a,b,c]要素を取る必要があります私はそれらを取る取る。

だから、この仕事をするには(時間を考えて)最善の方法は何ですか? 私は要素を反復処理する必要がありますか、または配列に変換して、それを処理する必要がありますか?

多分これを行うにはいくつかの高速な方法がありますか?

ありがとうございました。

+2

ここでは、何を意味するのかを明確にする必要があります。 List(または他のデータ構造)を別々のグループに分割し、最も効果的な方法を使用したいと思っていますか? – Charles

答えて

1

subList()を使用して新しいリストを作成し、最初のビューに表示するには、clear()をsubListに使用します。例:

subList = originalList.subList(0, 3); 
newList = new ArrayList(subList); 
subList.clear(); 

これは、はるかに効率的なすべての要素をシフトすることを含むのArrayListから要素を除去するので、一度に一つの要素を除去する元のリストを反復処理よりなります。 subListを使用すると、シフトが1回だけ実行されます。

+3

これを単純化するには、 'originalList.removeRange(0,3);'を実行します。 – birryree

+1

..または同じsubListを2回使用します。 –

+0

良い点は、 'removeRange'を使う答えを更新しました。 – ataylor

0

このリストを2つに分割する(sublistを2回コールする)sublistメソッドを使用できます。

関連する問題