J'ai une liste que je dois itérer et sur laquelle je dois effectuer un travail en cours de route. Mon problème est que, pour mon programme, il est difficile d'effectuer tout le travail nécessaire sur la liste à chaque boucle en raison de la concurrence. Ma solution a été d'itérer sur la boucle autant de fois que nécessaire et d'effectuer une partie du travail à chaque itération. Cet exemple devrait illustrer ce que je veux dire :
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
// Method A
for (String item : list) {
doWorkThing1(item);
doWorkThing2(item);
}
// Method B
for (String item : list) {
doWorkThing1(item);
}
for (String item : list) {
doWorkThing2(item);
}
La méthode B est celle qui m'intrigue. Y a-t-il un coût notable à itérer plusieurs fois sur une boucle ? Puisque je suppose que la plupart des coûts de performance iront aux méthodes de "travail", je me demandais s'il était juste de dire que la différence entre la méthode A et la méthode B serait négligeable ?