使用标识符从数组中调用数据
call data from array by using identifier
我有一个二维数组 (DataValueForStation
),它在第一列中表示站点 ID,在第二列中表示站点的值。有时 id 站的顺序不正常。还有包含 ID Station 的 AtStation
的二维数组,但顺序是随机的。我不知道如何为 AtStation
创建一维数组,这就是我只创建二维数组的原因。问题是我想创建一个数组 (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));
}
}
更新下面一行
double [][] ValueStation = new double [AtStation.length][0];
到
double [][] ValueStation = new double [AtStation.length][1];
这指定,您将在内部数组中有一个元素。
我有一个二维数组 (DataValueForStation
),它在第一列中表示站点 ID,在第二列中表示站点的值。有时 id 站的顺序不正常。还有包含 ID Station 的 AtStation
的二维数组,但顺序是随机的。我不知道如何为 AtStation
创建一维数组,这就是我只创建二维数组的原因。问题是我想创建一个数组 (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));
}
}
更新下面一行
double [][] ValueStation = new double [AtStation.length][0];
到
double [][] ValueStation = new double [AtStation.length][1];
这指定,您将在内部数组中有一个元素。