Используйте ENUM
типы, которые представляют специальный индекс вашего 2dim Array. Дайте им поле с именем value
/ name
/ ... и создайте их с индексом их в массиве. После этого вы можете легко вызвать их, получив их буквенное значение, которое представляет индекс массива.
Он очень удобочитаемый, и ENUM.<VALUE>
не представляет значение INT
. Вот как вы можете это сделать.
public enum ROW {
A(0), B(1), C(2), D(3), E(4);
private final int value;
ROW(int value) { this.value = value; }
public int getValue() { return value; }
}
public enum COL {
F(0), G(1), H(2), I(3), J(4);
private final int value;
COL(int value) { this.value = value; }
public int getValue() { return value; }
}
public static void main(String []args){
int[][] matrix = {{78, 0, 0, 0, 0}, {0, 54, 0, 0, 0}, {0, 0, 12, 0, 0}, {0, 0, 0, 74, 0}, {0, 0, 0, 0, 11}};
System.out.println("Value: " + matrix[ROW.A.getValue()][COL.F.getValue()]);
}
Я бы предпочел способ выше, потому что вы видите, что происходит напрямую, и можете присвоить любое значение, которое вы хотите. Но вы также можете использовать ENUM.ordinal () тоже.
Тогда data[ROW.a.ordinal()][...]
вернет 0 для ROW, потому что он указан первым. b вернет 1, ... Это зависит только от того, как они перечислены / созданы на ENUM
.