在Java 8的Stream foreach中递增计数器
在Java 8的Stream foreach中递增计数器
我想在使用foreach循环遍历时,递增一个AtomicInteger类型的counter。
public class ConstructorTest { public static void main(String[] args) { AtomicInteger counter = new AtomicInteger(0); ListfooList = Collections.synchronizedList(new ArrayList ()); List userList = Collections.synchronizedList(new ArrayList ()); userList.add("username1_id1"); userList.add("username2_id2"); userList.stream().map(user -> new Foo(getName(user), getId(user))).forEach(foo -> { fooList.add(foo); counter.incrementAndGet(); }); 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]; } }