首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Stream foreach Java 8中递增计数器

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

Stack Overflow用户
提问于 2016-07-25 20:42:59
回答 5查看 90.9K关注 0票数 44

当我使用foreach循环时,我想递增一个counter,它是一个AtomicInteger

代码语言:javascript
复制
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];
}
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-25 20:54:02

取决于您要递增的位置。

或者

代码语言:javascript
复制
userList.stream()
        .map(user -> {
               counter.getAndIncrement();
               return new Foo(getName(user), getId(user));
            })
        .forEach(fooList::add);

或者

代码语言:javascript
复制
userList.stream()
        .map(user -> new Foo(getName(user), getId(user)))
        .forEach(foo -> {
            fooList.add(foo);
            counter.getAndIncrement();
        });
票数 42
EN

Stack Overflow用户

发布于 2020-08-03 01:46:43

我们可以使用原子整数的incrementAndGet方法。

代码语言:javascript
复制
  AtomicInteger count=new AtomicInteger(0);

  list.forEach(System.out.println(count.incrementAndGet());
票数 15
EN

Stack Overflow用户

发布于 2019-10-01 21:32:21

也可以使用Stream.peek()

代码语言:javascript
复制
userList.stream()
    .map(user -> new Foo(getName(user), getId(user)))
    .peek(u -> counter.getAndIncrement())
    .forEach(fooList::add);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38568129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档