如何使用相同的for循环而不是三个循环

时间:2018-10-28 18:56:32

标签: java

我正在创建一种方法,该方法将遍历飞机的所有对象,这些对象都有起飞,飞行和着陆的方法。我通过使3个不同的for循环(分别执行每个方法)来创建此方法。无论如何,是否可以使用相同的for循环删除冗余代码?

protected void simulate() {
    for(Aircraft obj : vehicles) {
        obj.takeoff();
    }
    for(Aircraft obj : vehicles) {
        obj.fly();
    }
    for(Aircraft obj : vehicles) {
        obj.land();
    }

3 个答案:

答案 0 :(得分:2)

要删除冗余代码,您可以

vehicles.foreach(Aircraft::takeOff)
vehicles.foreach(Aircraft::fly)
vehicles.foreach(Aircraft::land)

但是,如果要使它们一起飞行,则需要三个循环。

答案 1 :(得分:0)

您必须使用单独的for循环。

如果您正在寻找较短的代码,并且正在使用java 8+,则可以执行以下操作:

vehicles.forEach(Aircraft::takeoff); 
vehicles.forEach(Aircraft::fly);
vehicles.forEach(Aircraft::land);

答案 2 :(得分:-1)

只需结合三种方法:

protected void simulate() {
     for(Aircraft obj : vehicles) {
        obj.takeoff();
        obj.fly();
        obj.land();
}