我已经从double类型的文本文件中打印了数据,并将其转换为double数组。当我打印数组时,它看起来像这样
[2.0 -2.0 -2.0 -2.0 2.0 2.0 2.0 2.0] 1.39E-04
[-2.0 -2.0 0.0 -2.0 -2.0 0.0 -2.0 2.0] 0.020446
[2.0 0.0 -2.0 2.0 2.0 -2.0 -2.0 -2.0] 0.032339
[2.0 2.0 -2.0 -2.0 2.0 2.0 -2.0 2.0] 0.026673
[-2.0 0.0 -2.0 -2.0 0.0 2.0 0.0 2.0] 0.094135
[0.0 0.0 0.0 -2.0 0.0 2.0 2.0 0.0] 0.045922
[0.0 -2.0 0.0 -2.0 0.0 2.0 0.0 -2.0] 0.117043
[-2.0 -2.0 -2.0 2.0 2.0 2.0 2.0 -2.0] 0.425709
[-2.0 -2.0 -2.0 2.0 2.0 2.0 2.0 2.0] 0.156286
最后一列是根据特定公式计算的每一行的分数。我的问题是如何循环使用此数组?因为我需要对该数组进行一些处理。 抱歉,我需要在循环外部使用具有与上面相同结构但没有括号的数组
我使用的代码是这样的
double [] D =new double [rows];
for (int i = 0; i < cols-1 i++) {
List<Double> list= new ArrayList<Double>();
for (int j = 0; j < rows; j++) {
int A = M[c][r];
D[c] = A;
list.add(D[c]);
}
double score= M.calculateDistance(D,class);
System.out.println(list+" "+score);
}
答案 0 :(得分:0)
您可以创建另一个列表来保存数组
List<List<Double>> listOfList= new ArrayList<List<Double>>();
因此您的新代码将如下所示:
double [] D =new double [rows];
List<List<Double>> listOfList= new ArrayList<List<Double>>();
for (int i = 0; i < cols-1 i++) {
List<Double> list= new ArrayList<Double>();
for (int j = 0; j < rows; j++) {
int A = M[c][r];
D[c] = A;
list.add(D[c]);
}
double score= M.calculateDistance(D,class);
System.out.println(list+" "+score);
listOfList.add(list); // add the array
}
但是,如果您还想在循环外使用score
并将其与它们的特定数组相关联,我建议您使用Map
或创建自己的对象。