Несколько циклов против цикла с помощью оператора switch [Java] - PullRequest
0 голосов
/ 30 сентября 2018

Следующий кодовый блок повторяется, но я не слишком раздражен этим:

    // method 1
    for (int i = 0; i < RUNS; i++) {
        otherObject.method1();
    }

    // method 2
    for (int i = 0; i < RUNS; i++) {
        otherObject.method2();
    }

    // method 3
    for (int i = 0; i < RUNS; i++) {
        otherObject.method3();
    }

    // method 4
    for (int i = 0; i < RUNS; i++) {
        otherObject.method4();
    }

Однако, если это повторится, скажем, для метода 10, это может начать беспокоить меня, что у меня есть этобольшой повторяющийся блок в середине моего кода.Инстинктивно (и, возможно, наивно) я хотел бы изменить его на что-то вроде этого:

    for(int j = 0; j < 4; j++){
        for(int i = 0; i < RUNS; i++){
            switch(j){
            case 0: otherObject.method1(); break;
            case 1: otherObject.method2(); break;
            case 2: otherObject.method3(); break;
            case 3: otherObject.method4(); break;
            }
        }
    }

Если число вызываемых методов или число RUNS станет очень большим, станет ли это неэффективнымпостоянно повторять через оператор switch?Если да, есть ли хороший способ обойти эту проблему?

...