java 匿名类实现6_java匿名内部类,以及实现Comparato和Comparable接口实现对对象的排序...

匿名内部类的声明使用方式,

Comparabletor接口实现,需要先导入包,再实现Comparator的对象比较的方法,并且需要新声明比较器类去实现此接口,再用比较器类新建对象调用compare(Objecto1, Object o2)方法,比较两个需要比较的对象的大小

Comparable的接口实现方式,可以直接使用需要比较的类去实现此接口,需要比较的对象去调用compareTo(Object o)方法即可

import java.util.Comparator;

import java.util.Arrays;

public class TestComparator{

public static void main(String[] args){

Student s1 = new Student(16, 'n', 99);

Student s2 = new Student(18, 'n', 98);

int res = s1.compareTo(s2);//根据实现接口重写的方法,对分数进行比较

Student s3 = new Student(17, 'n', 96);

Student[] students = new Student[3];

students[0] = s1;

students[1] = s2;

students[2] = s3;

Arrays.sort(students, new Comparator(){  //新建匿名内部类,对学生年龄进行比较

public int compare(Object o1, Object o2){

Student s1 = (Student)o1;

Student s2 = (Student)o2;

return s1.getAge() - s2.getAge();

}

});

for (int i = 0; i <= students.length-1 ; i++) {

System.out.println(students[i]);

}

}

}

class Student implements Comparable{

public int age;

public char gender;

public int score;

public Student(){

}

public Student(int age, char gender, int score){

this.age = age;

this.gender = gender;

this.score = score;

}

public void setAge(int age){

this.age = age;

}

public int getAge(){

return this.age;

}

public void setChar(char gender){

this.gender = gender;

}

public char getChar(){

return this.gender;

}

public void setScore(int score){

this.score = score;

}

public int getScore(){

return this.score;

}

public String toString(){

return "age: " + this.age + ", gender: " + this.gender + ", score: " + this.score;

}

public int compareTo(Object o){

Student s = (Student)o;

return this.score - s.score;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值