java插入排序arraylist,按字母顺序对数字和名称进行升序排序
所以我有一个狗的数组列表,我想按照尾巴的长度和名字的字母顺序来排序。 我可以让它按照尾部长度或名称进行排序,但我无法同时获得它们。这是我的密码:
import java.util.*;
public class DogSorter {
public void sort(ArrayList<Dog> dogs) {
for(int i =1; i < dogs.size(); i++) {
Dog current = dogs.get(i);
int j = i-1;
while ((j > -1 ) && ((dogs.get(j).compareTailLengthTo(current)) == 1)) {
dogs.set(j+1, dogs.get(j));
j--;
}
dogs.set(j+1, current);
}
}
}
在狗课上:
public double compareTailLengthTo(Dog dog) {
int res = 0;
if (this.tailLength < dog.getTailLength()) {
res = -1;
}
if (this.tailLength > dog.getTailLength()) {
res = 1;
}
return res;
}
我尝试对名字进行排序(也是在狗类中):
@Override
public int compareTo(Dog other) {
int compareInt = this.name.compareToIgnoreCase(other.name);
if(compareInt < 0) {return -1;}
if (compareInt > 0 ) {return 1;}
return 0;
}
我试着简单地替换。与…相比。在我的排序方法中进行比较,看看它是否能独立工作。然后,我试图通过添加另一个&&-检查完毕。比较TallengTo,但只有最后一次检查有效。(英语不是我的第一语言,所以我希望我的解释在这里有意义,如果没有,我道歉)
所以,在这堵文本墙之后,我想我的问题是:如何使用插入排序对多个事物进行排序
(如果这个问题已经被问到,我很抱歉。我已经搜索了好几个小时,还没有找到答案,所以我希望不是这样。我还想指出(如果有关系的话),这是一项学校作业,我只限于插入排序,我必须在单独的课堂上使用排序方法。)。最后,我是一个完全的编程初学者,所以请原谅我(但一定要纠正我!)任何愚蠢的错误
共 (0) 个答案