我现在正在使用Java8,
我想要做的是从每个列表中的元素索引中选择不同列表中的元素
我遵守了代码:
List<List<Integer>> lst = Arrays.asList(
Arrays.asList(1, 4, 7),
Arrays.asList(2, 5, 8),
Arrays.asList(3, 6, 9)
);
我希望输出结果如下:
[[1,2,3],[4,5,6],[7,8,9]]
我试过但没有得到结果。那么请你给我一些提示?
答案 0 :(得分:2)
您可以创建IntStream
列表索引并映射它们。以下代码解决了您的问题(假设输入列表非空并且每行具有相同数量的值):
List<List<Integer>> transposed = IntStream.range(0, lst.get(0).size())
.mapToObj(idx -> lst.stream().map(l -> l.get(idx)).collect(Collectors.toList()))
.collect(Collectors.toList());