Какой лучший способ моделировать матрицу в Java? - PullRequest
0 голосов
/ 15 марта 2012

Мне нужно смоделировать эту таблицу:

--------------------------------------
| range  | X<10  | 10<X<30 | 30<X<50 |
|--------|---------------------------|
|  Y<5   |  HIGH |  MIDDLE | LOW     |
|------------------------------------|   
| 5<Y<10 | MIDDLE|  LOW    | HIGH    |
|____________________________________|

Поэтому я должен смоделировать ее методом, который принимает 2 параметра (X и Y) и возвращает правильное значение на основе этой таблицы.

Я думал о реализации на основе карты, но, возможно, это не лучший способ.Как бы вы это смоделировали?

С уважением, Массимо

Ответы [ 2 ]

2 голосов
/ 15 марта 2012
private int getYIndex(int y) {
    if (y < 5) return 0;
    if (5 < y && y < 10) return 1;
    return -1; // should never reach this case
}

private int getXIndex(int x) {
    if (x < 10) return 0;
    if (10 < x && x < 30) return 1;
    if (30 < x && x < 50) return 2;
    return -1; // should never reach this case
}

Так что тогда вы могли бы просто иметь 2D-массив строк (String [] []), где индексы были бы получены из функций выше.

1 голос
/ 15 марта 2012

Как насчет двух карт?

Map<Range, Map<Range, String>>()

Range будет содержать 2 целых числа (нижняя и верхняя границы), вам нужно будет реализовать equals() и hashcode() для Range чтобы соответствовать природе `Map '.

Итак, первая Map будет фильтроваться по X, а вторая Map заливка получит значение (HIGH, LOW и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...