我有一个arraylist的arraylist,它包含一个字符串和一个整数,它看起来像:
ArrayList<ArrayList> l= {{1.02,"string1"},{0.33,"string2"},{1.15,"string3"},};
我希望按双号的顺序对其进行排序,如下所示:
ArrayList<ArrayList> l= {{0.33,"string2"},{1.02,"string1"},{1.15,"string3"},};
我写了这段代码,但它对我不起作用,我不知道问题出在哪里:
public void listSorting(ArrayList<ArrayList> l){
int min=0;
for(int i=0;i<l.size();i++){
min=i;
for(int j=i+1;j<l.size();j++){
if((double)(l.get(i).get(0)) < (double)(l.get(min).get(0))){
min=j;
}
}
ArrayList temp=new ArrayList<>();
temp.add(l.get(i));
l.get(i).add(l.get(min));
l.get(min).add(temp);
}
}
答案 0 :(得分:0)
你犯了三个错误:
double
的索引为零,而不是一个,min
项与索引为j
的项目进行比较,而不是i
,ArrayList
类型的元素时,请不要创建新的数组列表。以下是修改代码的方法:
for(int i=0;i<l.size();i++){
min=i;
for(int j=i+1;j<l.size();j++){
if((double)(l.get(j).get(0)) < (double)(l.get(min).get(0))){
min=j;
}
}
ArrayList temp=l.get(i);
l.set(i, l.get(min));
l.set(min, temp);
}