我有一个List类型的Car

public class Car {
    private String make;
    private String model;
    private Engine engine;
    //getters and setters below...
}


我想从我拥有的引擎列表中更新Engine中每个CarList属性。使用for循环,我可以通过以下方式完成此操作:

if (myListOfCars.size() == myListOfEngines.size()) {
    for (int i = 0; i < myListOfCars.length(); i++) {
         myListOfCars.get(i).setEngine(myListOfEngines.get(i));
    }
}


如何使用Java Streams完成相同的逻辑?

如果您有更好的标题建议,请分享。

最佳答案

我认为for loop更具可读性,但这也可以完成工作。

if (myListOfCars.size() == myListOfEngines.size()) {
    IntStream.range(0, myListOfCars.size())
        .forEach(
            i -> myListOfCars.get(i).setEngine(myListOfEngines.get(i)
        )
    );
}


请注意,如果您复制.length(),我已将其替换为.size()

关于java - 如何使用Java Streams从类型为Engine的列表更新类型为Car的列表的Engine属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38338539/

10-13 06:51