我有这行打印数字0到5的正方形:
IntStream.rangeClosed(0, 4).map(i ->i*i).forEach(System.out::println);
输出
0
1
4
9
16
有没有办法获得如下所示的输出?
0 :0
1 :1
2 :4
3 :9
4 :16
答案 0 :(得分:4)
map
i
到i*i
后,您将失去原来的i
。
您可以删除map
并在forEach
:
IntStream.rangeClosed(0, 4).forEach(i -> System.out.println(i + ": " + i*i));
答案 1 :(得分:4)
或者您可以这样做(映射到键/值的Pair
):
IntStream.rangeClosed(0, 4)
.mapToObj(i -> new AbstractMap.SimpleEntry<>(i, i * i))
.forEach(System.out::println);