有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案