Llamo a una API que me devuelve una colección de objetos. Quiero obtener un subconjunto de los objetos. Hay dos soluciones que estoy pensando. ¿Cuál me daría un mejor rendimiento? De acuerdo con mi entendimiento, la llamada toArray()
se repetirá principalmente a través de la colección una vez. Si eso es cierto, ¿entonces la solución sería mejor?¿Debo iterar una colección de Java para obtener un subconjunto, o debo convertirlo a una matriz primero y luego iterar para obtenerlo?
Solución 1 -
public static List<String> get(UUID recordid, int start, int count) {
List<String> names = new ArrayList<String>();
...
Collection<String> columnnames = result.getColumnNames();
int index = 0;
for (UUID columnname : columnnames) {
if ((index >= start) && (index - start < count)) {
names.add(columnname);
}
index++;
}
return names;
}
Solución 2 -
public static List<String> get(UUID recordid, int start, int count) {
List<String> names = new ArrayList<String>();
...
Collection<String> columnnames = result.getColumnNames();
String[] nameArray = columnnames.toArray(new String(columnnames.size()));
for (int index = 0; index < nameArray.length && count > 0; index++, count--) {
names.add(nameArray[index]);
}
return names;
}
¿Qué le parece usar 'subList'? – assylias
suena como si estuviera recibiendo una 'Colección' no necesariamente una' Lista' – ulmangt