我有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));
}
}
答案 0 :(得分:0)
更新下面的行
double [][] ValueStation = new double [AtStation.length][0];
到
double [][] ValueStation = new double [AtStation.length][1];
这表明,内部数组中将只有一个元素。