2

このスニペットがあるコードに取り組んでいます

{

    user = "B";
    indice = 21;

    switch (user) {
        case "A":
            A[indice - 1] = "X";
            break;
        case "B":
            B[indice - 1] = "X";
            break;
        case "C":
            C[indice - 1] = "X";
            break;

    }

}

このコードをより効率的に作成する方法があるかどうか疑問に思っていたので、それを書き直す必要はありません X 回の回数、私が設定したスイッチの量よりも多くの値がある可能性があります。大きな助けになる

4

2 に答える 2

4

を作成しMap<String,String[]>、配列を配置しABその中に次のCコードを使用します。

Map<String,String[]> arrayByName = new HashMap<String,String[]>();
arrayByName.put("A", A);
arrayByName.put("B", B);
arrayByName.put("C", C);
...
arrayByName.get(user)[indice-1] = "X";
于 2013-09-08T13:17:57.313 に答える
2

スイッチのケースが常に連続し (例: "A", "B", "C")、常に 1 文字である場合、次のように何かを行うことができます。

String[][] master = {A, B, C};

...

master[user.charAt(0) - 'A'][indice - 1] = "X";
于 2013-09-08T13:21:32.483 に答える