2012-02-17 14 views
18

Ho un TreeSet che contiene> 100k oggetti. Ho un altro metodo che richiede ArrayList come parametro.Conversione di un set di alberi in ArrayList?

Esiste un modo per eseguire questa operazione senza eseguire iterazione su intero TreeSet e quindi aggiungere manualmente ciascun oggetto a ArrayList?

+0

E 'possibile rilassare la firma del metodo per ricevere una semplice raccolta? In questo modo non è necessaria alcuna copia. –

risposta

43

ne dite di questo:

new ArrayList<T>(set); 
+3

Questo è il meglio che otterrai. Non c'è soluzione che non richieda tempo lineare. –

3

ArrayList ha un metodo comodo addAll che si inserisce il disegno di legge piacevolmente:

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

someBigNum potrebbe essere set.size() –

+1

someBigNum è molto fuorviante qui ... Non hai bisogno di un grande num. Hai solo bisogno di set.size() come indicato da Kuldeep –

Problemi correlati