选择排序的对象数组(包括代码)?

时间:2014-04-19 01:30:00

标签: java arrays sorting user-input

很多人帮我解决了这个问题,但是我仍然遇到排序错误......

 public static String sorting(){
for (int i = 0; i < pigArray.length; i++){
  for (int k = i + 1; k <pigArray.length; k++){

if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
   String temp = pigArray[i].getName();
   pigArray[i].setName( pigArray[k].getName );
   pigrray[k].setName(temp);
}
elseif(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())> 0){
    String temp = pigArray[k].getName();
    pigArray[k].setName( pigArray[i].getName );
    pigrray[i].setName(temp);
}
else
    pigArray[i].setName( pigArray[i].getName );`

String sorted = "";

for (int m = 0; m < pigArray.length; m++){

    sorted = sorted + "\n" + pigArray[m].getSortedName();     
}

return sorted;
}

private String name;

public void setName(String name){
this.name = name;
}

public String getSortedName() {
return name;
 }

pigArray是我存储猪名的对象数组。我(在这里有其他人的帮助,我很感激)已经有一段时间了。输出仍然不太正确:

输入:b,d,c

输出:c,c,d

对我来说,看起来上面代码的一部分是错误的,并按顺序将第二个顺序替换为第二个。我尝试了不同的循环方式,但没有成功。我可以向你保证,我的pigArray正确存储了这些名字。 pigArray [k] .getName()是我如何调用存储在对象数组中的名称。

也请不要arraylist。

谢谢。

1 个答案:

答案 0 :(得分:0)

if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
   String temp = pigArray[i].getName();
   pigArray[i].setName( pigArray[k].getName );
   pigrray[k].setName(temp);
}
else if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())> 0){
    String temp = pigArray[k].getName();
    pigArray[k].setName( pigArray[i].getName );
    pigrray[i].setName(temp);
}

如果不同,你可以交换pigArray [k]和pigArray [i]的名字。 尝试返回其他分段,比如

if(pigArray[k].getName().trim().compareTo(pigArray[i].getName().trim())< 0){
   String temp = pigArray[i].getName();
   pigArray[i].setName( pigArray[k].getName );
   pigrray[k].setName(temp);
}