java - 如何使用 Stream 对两个列表进行配对

标签 java java-stream

我有两个列表:

List<Flight> flightsToCity = findFlightToCity(airport);
List<Flight> flightsFromCity = findFlightFromCity(airport);

列表的元素是航类。我必须将 FlightsToCity 列表中的每个航类与第二个列表中的每个元素连接起来,并且必须是成对的。我必须对流执行此操作,结果必须是 List<Pair<Flight, Flight>> 例如:

flightsToCity:

London -> Warsow,
Berlin -> Warsow

flightFromCity:

Warsow -> Barcelona,
Warsow -> Zakopane

Result:

London -> Warsow, Warsow -> Barcelona
London -> Warsow, Warsow -> Zakopane
Berlin -> Warsow, Warsow -> Barcelona
Berlin -> Warsow, Warsow -> Zakopane

最佳答案

假设列表具有相同的大小并且元素的顺序正确,您可以使用 IntStream解决您的问题。

        List<Pair<Flight, Flight>> flightsOfAirport = IntStream
            .range(0, flightsFromCity.size())
            .mapToObj(index -> Pair.of(flightsToCity.get(index), flightsFromCity.get(index)))
            .collect(Collectors.toList());

关于java - 如何使用 Stream 对两个列表进行配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704159/

相关文章:

java - 使用自定义适配器在 ListView 中选择/突出显示多个项目 - Android

Java 8 使用键重复检查将二维数组转换为 Map

java - 如何表示一个空的 InputStream

java - 使用 forEach 和 Stream 的优缺点

java - 如何使用java 8查找文本文件中的单词总数、元音总数、特殊字符总数

enums - 与数组上的迭代相比,使用 Arrays.stream() 是否有任何性能优势?

java - 两种方法之间的锁使一种方法挨饿

java - 缓冲图像/图像转换

使用 Eclipse : "Profiling and debugging agents are not supported in this VM" 进行 Java Linux Arm 远程调试

java - 我怎样才能简化验证一个方法是用某些参数而不是其他参数调用的?