如何在流API中使用system.out重写递增循环

问题描述 投票:0回答:2

如何在Java 8流API中重写此代码?

public static void main(String[] args) {
    final List<String> ids = Arrays.asList("001", "007", "012", "099", "101", "167");
    int total = 0;
    for (String id : ids) {
        if (id.indexOf("1") >= 0) {
            System.out.println(id);
            total++;
        }
    }
    System.out.println("Total count: " + total);
}
java java-8 java-stream
2个回答
0
投票

我们可以这样做:

    System.out.println(
            "Total count: " + ids.stream()
                                .filter(id -> id.indexOf("1") >= 0)
                                .peek(System.out::println)
                                 .count());

1
投票

等效流可以这样

long total = ids.stream()
     .filter(id - > id.indexOf("1") >= 0)
     .peek(System.out::println)
     .count();
© www.soinside.com 2019 - 2024. All rights reserved.