【发布时间】:2021-01-13 09:41:35
【问题描述】:
排序不起作用,它没有按字母对名称进行排序,我用 int 编写了一个冒泡排序算法,它运行良好。你能帮助我吗? compareTo() 方法有问题吗?
public ArrayList<FootballPlayer> sortByNames(ArrayList<FootballPlayer> pList)
{
FootballPlayer z;
for(int i=0; i<pList.size(); i++)
{
for(int j=0; j<pList.size()-i-1;j++)
{
if((pList.get(i).getName()).compareTo(pList.get(j+1).getName())>0)
{
z = pList.get(j);
pList.set(j, pList.get(j+1));
pList.set(j+1,z);
}
}
}
for(int i=0; i<pList.size(); i++)
{
System.out.print(pList.get(i).getName()+";");
System.out.println("");
}
return pList;
}
【问题讨论】:
-
看起来您正在将 pList.get(i) 与 pList.get(j+1) 进行比较,但随后您将 pList.get(j) 与 pList.get(j+1) 交换.我相信您应该将第 j 个元素与第 j+1 个元素进行比较。
-
谢谢,我深陷其中,以至于忽略了它
标签: java string bubble-sort