Java,如何从二维二维数组中找到特定值?

时间:2013-07-29 01:40:29

标签: java methods multidimensional-array

我需要计算两个地点之间的价格,我有以下数据结构,它们保持区域之间的价格:

                  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;
}

2 个答案:

答案 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];
}  

XY放在数组中的情况下的处理案例留给了读者。

还要确保pricesXY可以从calculateFees访问。 XY也应该是String[],而不是String

答案 1 :(得分:0)

X获取XY的索引,比如i

Y获取XY的索引,说j

使用prices[i][j]获取票价。

您可能需要每次两次遍历给定字符串的数组XY测试。您可以通过使用从String到Integer索引的HashMap来节省时间。