我必须对此表进行建模:
--------------------------------------
| range | X<10 | 10<X<30 | 30<X<50 |
|--------|---------------------------|
| Y<5 | HIGH | MIDDLE | LOW |
|------------------------------------|
| 5<Y<10 | MIDDLE| LOW | HIGH |
|____________________________________|
所以我必须在一个带有2个参数(X和Y)的方法中对它进行建模,并根据该表返回正确的值。
我想过基于地图的实现,但也许这不是最好的方法。 你会如何塑造它?
亲切的问候 马西莫
答案 0 :(得分:2)
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
}
那么你就可以得到一个字符串的二维数组(String [] []),其中的索引将来自上面的函数。
答案 1 :(得分:1)
两张地图怎么样?
Map<Range, Map<Range, String>>()
Range
将包含2个整数(下限和上限),您需要实现equals()
和hashcode()
,以使Range
适合`Map '自然。
因此,第一个Map
将按X
过滤,第二个Map
填充获取值(HIGH,LOW等)