复制 ArrayList 并排序,然后使用 indexOf。
ArrayList<Double> nfit = new ArrayList<Double>();
nfit.add(2.0);
nfit.add(5.0);
nfit.add(1.0);
nfit.add(8.0);
nfit.add(3.0);
ArrayList<Double> nstore = new ArrayList<Double>(nfit); // may need to be new ArrayList(nfit)
Collections.sort(nfit);
int[] indexes = new int[nfit.size()];
for (int n = 0; n < nfit.size(); n++){
indexes[n] = nstore.indexOf(nfit.get(n));
}
System.out.println(Arrays.toString(indexes));
如果您想要 ArrayList 中的索引,
Collections.sort(nstore);
for (int n = 0; n < nfit.size(); n++){
nstore.add(n, nfit.indexOf(nstore.remove(n)));
}
Collections.sort(nfit);
这将产生一个排序的 ArrayList nfit 和一个 ArrayList 的索引 nstore。
编辑:在for循环中
for (int n = 0; n < nfit.size(); nfit++){
nstore.add(n, nfit.indexOf(nstore.remove(n)));
}
循环计数必须在 n 上迭代,而不是在 nfit 上找到更正的代码:
for (int n = 0; n < nfit.size(); n++){
nstore.add(n, nfit.indexOf(nstore.remove(n)));
}