我需要计算两个地点之间的价格,我有以下数据结构,它们保持区域之间的价格:
Washington Niagra Falls New York
Washington 0, 6.30, 8.30
Niagra Falls 5.30, 0 , 5.30
New York 3.20, 4.30, 0
如何根据String X和String Y Locations创建一个可以在二维数组中找到值的方法?
这是我到目前为止的代码:
String Location X = "Washington";
String Location Y = "New York";
String XY = {"Washington", "Niagara Falls", "New York"};
//Cost of the trips
double[][] prices = {
{0, 6.30, 8.30},
{5.30, 0, 5.30},
{3.20, 4.30, 0 },
};
在上述案例中华盛顿 - >纽约应该是8.30
。
方法应该是这样的:
public double calculateFees(String X, String Y){
//add code here.
double fares;
return fares;
}
答案 0 :(得分:2)
您需要确定适用的数组索引。
public double calculateFees(String X, String Y){
int xArrIdx=0;
for(xArrIdx=0; xArrIdx<XY.length; xArrIdx++){
if(XY[xArrIdx].equals(X)) break;
}
for(yArrIdx=0; yArrIdx<XY.length; yArrIdx++){
if(XY[yArrIdx].equals(Y)) break;
}
return prices[xArrIdx][yArrIdx];
}
将X
或Y
放在数组中的情况下的处理案例留给了读者。
还要确保prices
和XY
可以从calculateFees
访问。 XY
也应该是String[]
,而不是String
。
答案 1 :(得分:0)
从X
获取XY
的索引,比如i
。
从Y
获取XY
的索引,说j
。
使用prices[i][j]
获取票价。
您可能需要每次两次遍历给定字符串的数组XY测试。您可以通过使用从String到Integer索引的HashMap来节省时间。