有 5 个条目存储在ArrayList<ArrayList<Double>> selected
. 这些条目中的每一个都由两个参数指定 -rank
和cd
:
rank = [1.0, 2.0, 3.1, 1.2, 2.1]
cd = [6.2, 5.2, 7.1, 8.0, 1.1]
我需要对这些条目进行排序,首先,按rank
,其次,按cd
降序排列(即 3.1、2.1、2.0、1.2、1.1)。第二个排序 (by cd
) 必须应用于已经按 排序的条目rank
。
ArrayList<Double> rank = new ArrayList<Double>();
ArrayList<Double> cd = new ArrayList<Double>();
ArrayList<ArrayList<Double>> selected = new ArrayList<ArrayList<Double>>();
for (int i=0; i<len; i++) {
rank.add(getRank(i));
cd.add(getCub_len(i));
}
selected.add(0,rank);
selected.add(1,cd);
Comparator<ArrayList<Double>> comparatorRank = new Comparator<ArrayList<Double>>()
{
public int compare(ArrayList<Double> a, ArrayList<Double> b)
{
return (int) (a.get(0) - b.get(0));
}
};
Comparator<ArrayList<Double>> comparatorCD = new Comparator<ArrayList<Double>>()
{
public int compare(ArrayList<Double> a, ArrayList<Double> b)
{
return (int) (a.get(1) - b.get(1));
}
};
Collections.sort(selected, comparatorRank);
Collections.sort(selected, comparatorCD);
问题是我不知道如何在订购之前获取已分配给条目的 ID。例如,这是一个无序的ID序列:1、2、3、4、5,这是排序后的ID序列:5、3、4、1、2。如何获得这些ID?