私は> 100k個のオブジェクトを含むTreeSetを持っています。 私は、ArrayListをparamとして必要とする別のメソッドを持っています。TreeSetをArrayListに変換しますか?
TreeSet全体を反復処理せずに各オブジェクトを手動でArrayListに追加することなく、これを実現できる方法はありますか?
私は> 100k個のオブジェクトを含むTreeSetを持っています。 私は、ArrayListをparamとして必要とする別のメソッドを持っています。TreeSetをArrayListに変換しますか?
TreeSet全体を反復処理せずに各オブジェクトを手動でArrayListに追加することなく、これを実現できる方法はありますか?
これはどう:
new ArrayList<T>(set);
これはあなたが得る最高のものです。線形時間を必要としないソリューションはありません。 –
ArrayListのは、うまく法案に合う便利なメソッドaddAll
があります
final Set<Object> set = ...
List<Object> list = new ArrayList<Object>(someBigNum);
list.addAll(set);
someBigNumはset.size()に設定することができます –
someBigNumは非常に誤解を招いています...あなたは大きなnumを必要としません。 kuldeepが指摘したようにset.size()が必要です –
それは単なるコレクションを受信するためのメソッドのシグネチャを緩和することは可能ですか?そうすれば、コピーは必要ありません。 –