如何在Java 8中将int列表收集到条目列表

时间:2019-04-17 09:01:36

标签: java java-8

我有一个整数数组int[],并且想创建一个包含以下内容的项List

class Entry {
   int theIndexOfNumber;
   int numberInTheArray;
}

例如,对于{3,5,7},,我想要一个列表

{1, 3}, {2, 5},(3, 7}

使用一些Java代码很容易,但是我想使用Java 8以流方式进行操作。

我认为我应该使用某种收集器,但不知道该如何写。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您可以使用IntStream遍历数组的索引,并将每个索引映射到相应的Entry实例:

int[] arr = ...
List<Entry> entries =
    IntStream.range(0,arr.length)
             .mapToObj(i -> new Entry(i+1,arr[i]))
             .collect(Collectors.toList());

这是假设Entry具有必需的构造函数。