gpt4 book ai didi

java - 根据另一个列表的值对列表进行排序 - Java

转载 作者:搜寻专家 更新时间:2023-10-31 08:29:44 28 4
gpt4 key购买 nike

一个包含名称的列表:(未排序)例如 [paul, foul, mark]

另一个整数列表:例如[5, 2, 6]

第二个列表中的值是每个人(姓名)“选择”的数字,所以保罗的号码是5,犯规的号码是2,马克的号码是6。

我正在尝试根据第二个列表的值按降序对名称列表进行排序。我不能使用 map ,因为我在程序的其他场合需要这两个列表。

通过排序方法,我得到了这样的列表:[paul, mark, foul]

如您所见,它没有按照我想要的方式排序。

正确的应该是:[mark,paul,foul]

但我找不到代码上的错误。

public ArrayList<String> sortNames(ArrayList<Integer> results){
String tmp;
for (int k=0; k<Names.size()-1; k++) {

boolean isSorted=true;
for (int i=1; i<Names.size()-k; i++) {

if (results.get(i)>results.get(i-1) ) {

tmp=Names.get(i);
Names.set(i,Names.get(i-1));
Names.set(i-1,tmp);

isSorted=false;
}
}
if (isSorted) break;
}
return Names;

}

编辑!!!在下面的答案的帮助下,代码是:

    public ArrayList<String> sortNames(ArrayList<Integer> results){
String tmp2;
int tmp;
for (int k=0; k<Names.size()-1; k++) {

boolean isSorted=true;
for (int i=1; i<Names.size()-k; i++) {

if (results.get(i)>results.get(i-1) ) {
tmp=results.get(i);
results.set(i,results.get(i-1));
results.set(i-1,tmp);


tmp2=Names.get(i);
Names.set(i,Names.get(i-1));
Names.set(i-1,tmp2);

isSorted=false;
}
}
if (isSorted) break;
}
return Names;

}

这段代码工作正常(对于小列表)我只是想问为什么它对像 ImageIcon 这样的对象不起作用。有什么想法吗?

最佳答案

摆脱这两个列表。如果数据是相关的,那么数据应该一起存储在一个简单的类中。然后将整个类添加到一个列表中,如果需要,您可以在其中对各个属性进行排序。您可以使用 Bean Comparator根据需要对列表进行排序。

关于java - 根据另一个列表的值对列表进行排序 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4839915/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com