Interfaz java_comparable

En una matriz, podemos utilizar los datos de clasificación de clase de operación directamente matrices. Arrays y clase srot método es sobrecargados repetidamente puede ordenar cualquier tipo de matriz, ordenadas en función del tamaño de la disposición numérica. Del mismo modo, también puede ordenar la matriz del objeto, pero no es un requisito, es decir, donde la clase de objeto debe implementar la interfaz Comparable.

interfaz Comparable se define como sigue:

public interface Comparable<T>{
    public int compareTo(T o);
}

valores int son alrededor de tres maneras:

  • Que es mayor que 1
  • Significa menos de -1
  • 0 medias iguales

Un vistazo al siguiente ejemplo: Diseño requiere una clase de estudiante que incluye el nombre, la edad, los resultados de tres campos, y genera una matriz de objetos, de acuerdo con sus puntuaciones ordenar los requisitos, si los mismos resultados, prensa edades de bajo a alto Ordenar.

categorías de estudiantes:

public class Student implements  Comparable<Student>{
    private String name;
    private int age;
    private int score;

    public Student(String name, int age, int score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    public String toString() {
        return name+"\t\t"+age +"\t\t"+ score;
    }

    @Override
    public int compareTo(Student o) {
        if(this.score > o.score){
            return -1;
        }else if(this.score<o.score){
            return 1;
        }else {
            if(this.age>o.age){
                return 1;
            }else if(this.age<o.age){
                return  -1;
            }else {
                return 0;
            }
        }

    }
}

categorías de prueba:

public class StudentTest {

    public static void main(String[] args) {
        Student stu[] = {new Student("张三",24,99),
                new Student("李四",22,100),
                new Student("王五",19,30),
                new Student("赵七",20,99),
                new Student("孙八",43,23)};

        Arrays.sort(stu);

        for (Student s :stu){
            System.out.println(s);
        }
    }
}

El resultado:

John Doe 22100
Zhao siete 2099
John Doe 2499
Wangwu 1930
Sun ocho 4323

Publicado 22 artículos originales · ganado elogios 9 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_19408473/article/details/72920074
Recomendado
Clasificación