2012-02-17 65 views
18

Tengo un TreeSet que contiene> 100k objetos. Tengo otro método que requiere ArrayList como parámetro.Convirtiendo un TreeSet a ArrayList?

¿Hay alguna forma de que pueda lograr esto sin iterar todo TreeSet y luego agregar cada objeto manualmente a ArrayList?

+0

¿Es posible relajar la firma del método para recibir una simple colección? De esa forma no se necesita copiar. –

Respuesta

43

¿Qué tal esto:

new ArrayList<T>(set); 
+3

Esto es lo mejor que va a obtener. No hay una solución que no requiera tiempo lineal. –

3

ArrayList tiene un método de conveniencia addAll que se ajuste a la factura bien:

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

someBigNum podría set.size() –

+1

someBigNum es muy engañoso aquí ... No necesita un gran número. Solo necesita set.size() como señaló kuldeep –