вызов данных из массива с использованием идентификатора - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть 2D Array (DataValueForStation), который представляет идентификатор станции в первом столбце и значение станции во втором столбце.Иногда id Station не в нормальном порядке.Есть также двумерный массив AtStation, который состоит из ID Station, но в случайном порядке.Я не знаю, как создать 1d массив для AtStation, и поэтому я создаю только 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 голосов
/ 12 ноября 2018

Обновите строку ниже

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

до

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

Это означает, что у вас будет один элемент во внутреннем массиве.

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