数据结构与算法–Comparable方法实现
JAVA实现
Comparable比较方法
实现学生类,并且比较学生年龄大小,输出年龄大的学生的信息;
新建一个Student学生类:
/**
* java.lang.SuppressWarnings是J2SE 5.0中标准的Annotation之一。可以标注在类、字段、方法、参数、构造方法,以及局部变量上。
作用:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。
* @author VVA
*
*/
public class Student implements Comparable<Student>{
//定义一个学生类,具有age,username两个属性,并通过Comparable接口提供的比较规则;
private String username;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "Student{" +
"usrename='" + username + '\'' +
",age=" + age +
"}";
}
@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
return this.getAge() - o.getAge();
}
}
新建一个TestComparable类:
```java
public class TestComparable {
//类Test,在Test中定义方法Comparable getMax(Comparablec1,comparablec2,)完成测试
// @SuppressWarnings("rawtypes")
public static Comparable getMax(Comparable c1,Comparable c2) {
int result = c1.compareTo(c2);
//如果result <0 则c1比c2小
//如果result >0 则c1比c2大
//如果result =0 则c1-c2
if(result >= 0) {
return c1;
}else {
return c2;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Student s1 = new Student();
s1.setUsername("张三");
s1.setAge(18);
Student s2 = new Student();
s2.setUsername("李四");
s2.setAge(20);
Comparable max = getMax(s1, s2);
System.out.println(max);
}
}
在这个实验中我们得出结果:
这样就实现了Comparable比较方法的测试。