在Java 8的Stream foreach中递增计数器

12 浏览
0 Comments

在Java 8的Stream foreach中递增计数器

我想在使用foreach循环遍历时,递增一个AtomicInteger类型的counter。

public class ConstructorTest {
    public static void main(String[] args) {
        AtomicInteger counter = new AtomicInteger(0);
        List fooList = 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];
    }
}

0