L'incrémentation du compteur de Flux foreach Java 8
Je tiens à incrémenter un counter
qui est un AtomicInteger
que je boucle à travers l'utilisation de foreach
public class ConstructorTest {
public static void main(String[] args) {
AtomicInteger counter = new AtomicInteger(0);
List<Foo> fooList = Collections.synchronizedList(new ArrayList<Foo>());
List<String> userList = Collections.synchronizedList(new ArrayList<String>());
userList.add("username1_id1");
userList.add("username2_id2");
userList.stream().map(user -> new Foo(getName(user), getId(user))).forEach(fooList::add);
//how do I increment the counter in the above loop
fooList.forEach(user -> System.out.println(user.getName() + " " + user.getId()));
}
private static String getName(String user) {
return user.split("_")[0];
}
private static String getId(String user) {
return user.split("_")[1];
}
}
OriginalL'auteur Damien-Amen | 2016-07-25
Vous devez vous connecter pour publier un commentaire.
Dépend de l'endroit où vous voulez incrémenter.
Soit
ou
Method Reference
avec un autre appel de méthode. Suppose que c'est pas possible. Je vais accepter votre réponse 🙂OriginalL'auteur bradimus
Vous pouvez la changer en une classe anonyme:
N'oubliez pas de faire
counter
final
.Pas de véritable raison - lorsque vous avez posté votre réponse, il a été meilleur que le mien, mais le mien suggère une autre solution alors je l'ai laissé ici. BTW - vous devriez probablement ajouter la remarque à propos de faire le compteur final.
OriginalL'auteur OldCurmudgeon