2012-02-17 9 views
18

私は> 100k個のオブジェクトを含むTreeSetを持っています。 私は、ArrayListをparamとして必要とする別のメソッドを持っています。TreeSetをArrayListに変換しますか?

TreeSet全体を反復処理せずに各オブジェクトを手動でArrayListに追加することなく、これを実現できる方法はありますか?

+0

それは単なるコレクションを受信するためのメソッドのシグネチャを緩和することは可能ですか?そうすれば、コピーは必要ありません。 –

答えて

43

これはどう:

new ArrayList<T>(set); 
+3

これはあなたが得る最高のものです。線形時間を必要としないソリューションはありません。 –

3

ArrayListのは、うまく法案に合う便利なメソッドaddAllがあります

final Set<Object> set = ... 
List<Object> list = new ArrayList<Object>(someBigNum); 
list.addAll(set); 
+4

someBigNumはset.size()に設定することができます –

+1

someBigNumは非常に誤解を招いています...あなたは大きなnumを必要としません。 kuldeepが指摘したようにset.size()が必要です –

関連する問題