Java Stream - 如何将计数器i添加到流的第n个值

时间:2016-11-29 08:06:47

标签: java java-8 java-stream counter

如何在通过Stream迭代时将计数器值添加到每个第n项?

这是我最简单的代码:

Stream.of("a1","a2","a3")
    .map(x -> x + "counterValue")
    .findFirst()
    .ifPresent(System.out::println);

当我为每个n项添加“counterValue”字符串时,我想要实现的是为每个第n个元素添加i值。

当前程序将输出设为a1counterValue

我希望输出为a10。 0表示该元素的索引。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

这是你在找什么?

 List<String> input = Arrays.asList("one", "two");
 IntStream.range(0, input.size())
      .mapToObj(i -> input.get(i) + i)
      .collect(Collectors.toList()) // [one0, two1]

答案 1 :(得分:0)

您可以使用IntStream使用索引进行迭代,如下所示:

String[] arr = {"a1","a2","a3"};
int lentgh = arr.length;
IntStream.of(0, lentgh).
    mapToObj(((int i) -> i + arr[i])).findFirst().
     ifPresent(System.out::println);