有 Java 编程相关的问题?

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

JAVA如何在本练习中使用compareTo比较整数

我试着做这个练习:我有一个学生有名字、姓氏和号码,我想按号码排列学生。。如果我想按姓名或姓氏订购,这似乎很容易,但我不知道怎么做。。 这是我的代码:

public class Student implements Comparable<Student> {
private String name;
private String surname;
private int number;


public Student(String n, String s, int m) {
    name = n;
    surname = s;
    number = m;
}

public String getName() {
    return name;
}

public String getSurname() {
    return surname;
}

public int getmatricola() {
    return number;
}
//CompareTo Name
public int compareTo(Student otherObject) {
    return name.compareTo(otherObject.getName());
}
}
//TESTER
 ArrayList<Student> list = new ArrayList<Student>(); 
 System.out.print("\n ORDER BY NUMBER \n");

    Collections.sort(list);
    for (int i = 0; i < list.size(); i++) {
        Student s = list.get(i);
        String std = s.getAll();
        System.out.println(std);


    }

共 (3) 个答案

  1. # 1 楼答案

    那么为什么你的数字是一个整数,你可以减去这个数字并返回差值:

    public class Student implements Comparable<Student> {
    private String name;
    private String surname;
    private int number;
    
    
    public Student(String n, String s, int m) {
        name = n;
        surname = s;
        number = m;
    }
    
    public String getName() {
        return name;
    }
    
    public String getSurname() {
        return surname;
    }
    
    public int getmatricola() {
        return number;
    }
    //CompareTo number
    public int compareTo(Student otherObject) {
        return number - otherObject.getmatricola();
    }
    }
    
  2. # 2 楼答案

    您可以实现以下功能:

    public int compareTo(Student otherObject) {
        return Integer.compare(this.number, otherObject.getNumber());
    }
    
  3. # 3 楼答案

    试着这样做。。。应该有用 //比较名称 公共整数比较(学生其他对象){ if(this.getmatricola()>;其他对象。getmatricola()) 返回1; 其他的 返回-1; }