Ceci est une question Java.Le moyen le plus rapide de convertir la liste <?> en Liste <ObjectType>
Quel est le moyen le plus rapide de convertir un List<?>
en un List<ObjectType>
? Je suis conscient que cela est possible grâce à l'itération, veuillez exclure cette option.
Exemple par itération,
final List<ObjectType> targetList = new ArrayList<ObjectType>();
// API returns List<?> so I have no choice.
List<?> resultList = resultSet.getResults();
// This is slow. Average list size is 500,000 elements.
while (resultList != null && !resultList.isEmpty()) {
for (final Object object : resultList) {
final ObjectType objectType = (ObjectType) object;
targetList.add(objectType);
}
resultSet = someService.getNext(resultSet);
resultList = resultSet.getList();
}
Merci.
Puisque vous utilisez une liste basée sur la baie, vous avez essayé de pré-allouer 500.000 éléments (ou à peu près autant?). Cela peut donner un coup de pouce de performance. –
Maintenant que j'y pense, une LinkedList éliminerait complètement tout le problème de "mémoire pré-allouée". –
Y a-t-il quelque chose qui supprime des éléments de 'resultList', ou est-ce que' while' est supposé être un 'if'? –