java compareable接口_java | Comparable 接口

Comparator接口源码:public interface Comparator {

int compare(T var1, T var2);

}

Arrays.sort()方法需要传入一个数组,和一个实现Comparator接口类的实例。

如将学生数组按照分数进行排序:// 定义学生类

class Student{

public int scores;

private String name;

public Student(String name, int scores){

this.name = name;

this.scores = scores;

}

}

比较器类:// 定义继承Comparator接口的实现类

class com implements Comparator{

@Override

// 重写compare方法

public int compare(Student t1, Student t2) {

return t1.scores - t2.scores;

}

}

测试类:public class studentTest {

public static void main(String[] args) {

Student[] students = new Student[2];

students[0] = new Student("小红",101);

students[1] = new Student("小明",100);

Arrays.sort(students, new com());

}

}

比较器也可写成匿名内部类的形式:public class studentTest {

public static void main(String[] args) {

Student[] students = new Student[2];

students[0] = new Student("小红",101);

students[1] = new Student("小明",100);

Arrays.sort(students, new Comparator() {

@Override

// 重写compare方法

public int compare(Student t1, Student t2) {

return t1.scores - t2.scores;

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Comparable接口定义了一个compareTo方法,用于比较类的对象之间的大小关系。实现Comparable接口的类可以使用Arrays.sort()和Collections.sort()进行排序。 实现Comparable接口的类需要重写compareTo方法,该方法返回一个整数值,表示当前对象与另一个对象的大小关系。如果当前对象小于另一个对象,则返回负整数;如果当前对象等于另一个对象,则返回0;如果当前对象大于另一个对象,则返回正整数。 以下是一个示例实现Comparable接口的类: ``` public class Person implements Comparable<Person> { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public int compareTo(Person o) { return this.age - o.getAge(); } } ``` 在上面的示例中,Person类实现了Comparable接口,并重写了compareTo方法。该方法比较两个Person对象的年龄大小关系。 如果要对Person对象进行排序,可以使用Arrays.sort()或Collections.sort()方法。例如: ``` Person[] persons = new Person[] { new Person("Tom", 25), new Person("Jack", 18), new Person("Mary", 30) }; Arrays.sort(persons); for (Person person : persons) { System.out.println(person.getName() + " " + person.getAge()); } ``` 该示例中,使用Arrays.sort()对Person对象数组进行排序,按照年龄从小到大排序。最后输出排序后的结果。 需要注意的是,实现Comparable接口的类必须能够比较大小,否则可能会抛出ClassCastException异常。因此,在重写compareTo方法时,应该考虑到类的属性是否可以比较大小。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值