通过使用标识符从数组调用数据

时间:2018-11-12 14:06:39

标签: java arrays identifier

我有2D数组(DataValueForStation),它们在第一列中代表id站,在第二列中代表该站的值。有时id站的顺序不正常。还有AtStation的2D数组,由ID Station组成,但顺序随机。我不知道如何为AtStation创建1d数组,这就是为什么我仅创建2D数组的原因。问题是我想创建一个数组(ValueStation),该数组通过使用Id Station作为标识符来提取车站的值。错误显示ArrayIndexOutofBoundException

import java.util.Arrays;

public class Looping {

    public static void main(String[] args) 
    {
        double [][] DataValueForStation = {{11, 1000}, {22, 2000}, {35, 3000}, {46,4000}};
        int [][] AtStation = {{22},{46},{35},{11}};

        double [][] ValueStation = new double [AtStation.length][0];

        int j = 0;
        for (int i=0; i<DataValueForStation.length; i++)
        {
            if (j<AtStation.length && AtStation[j][0] == DataValueForStation[i][0])
            {
                ValueStation[j][0] = DataValueForStation[i][1];
                j++;
            }
            else if (j<AtStation.length && AtStation[j][0] != DataValueForStation[i][0])
            {
                for (int k=0; k<DataValueForStation.length; k++)
                {
                    if (j<AtStation.length && AtStation[j][0] == DataValueForStation[k][0])
                    {
                        ValueStation[j][0] = DataValueForStation[k][1];
                        j++;
                    }
                }
            }
        }
        System.out.println(Arrays.deepToString(ValueStation));
    }

}

1 个答案:

答案 0 :(得分:0)

更新下面的行

double [][] ValueStation = new double [AtStation.length][0];

double [][] ValueStation = new double [AtStation.length][1];

这表明,内部数组中将只有一个元素。