如何在通过Stream迭代时将计数器值添加到每个第n项?
这是我最简单的代码:
Stream.of("a1","a2","a3")
.map(x -> x + "counterValue")
.findFirst()
.ifPresent(System.out::println);
当我为每个n
项添加“counterValue”字符串时,我想要实现的是为每个第n个元素添加i
值。
当前程序将输出设为a1counterValue
。
我希望输出为a10
。 0表示该元素的索引。
有人可以帮忙吗?
答案 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);