我想增加一个counter
这是一个AtomicInteger
当我循环使用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];
}
}
取决于你想增加的地方。
Either
userList.stream()
.map(user -> {
counter.getAndIncrement();
return new Foo(getName(user), getId(user));
})
.forEach(fooList::add);
or
userList.stream()
.map(user -> new Foo(getName(user), getId(user)))
.forEach(foo -> {
fooList.add(foo);
counter.getAndIncrement();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)