【发布时间】:2020-08-27 23:00:53
【问题描述】:
我有两个收藏:
List<String> names = ...
List<Long> counts = ...
我知道这两个集合是相等的,并且一个列表中位置 n 处的每个值都与另一个列表匹配。
我想执行一个转换,作为我收到的输出:
List<Foo> foos = ...
其中Foo 是定义为的记录:
record Foo(String name, long count)
现在这是我的解决方案:
List<Foo> foos = IntStream.range(0, names.size())
.mapToObj(i -> new Foo(names.get(i), counts.get(i)))
.collect(Collectors.toList());
我的问题:还有其他方法可以配对和收集 Foo 对象吗?
【问题讨论】:
-
请在代码审查中发布您的问题。
-
@RavindraRanwala - 这真是个糟糕的建议。代码审查不是关于如何以不同方式做某事的问题。
-
当然还有其他方式,例如你可以使用一个循环。关于 Stream API,这是最简单的解决方案。由于它有效,而且您没有任何实际问题,因此不必费心考虑替代方案。
-
你走对了! ..您可以进一步使用所有喜欢您的代码的库。有用的链接baeldung.com/java-collections-zip
标签: java java-stream