网站屏蔽国内ip,网站注册步骤,手机搭建本地网站,民治网站建设公司基于Comparable的接口类基于Comparator的接口类
1、比较器的Comparable接口类
Comparable类的定义:
public interface ComparableT{ public int compareTo(T o); }2、Comparable比较器的返回值#xff1a;
此方法返回一个int类型的数据#xff0c;但是此int的值…基于Comparable的接口类基于Comparator的接口类
1、比较器的Comparable接口类
Comparable类的定义:
public interface ComparableT{ public int compareTo(T o); }2、Comparable比较器的返回值
此方法返回一个int类型的数据但是此int的值只能是以下三种
1 表示大于
-1表示小于
0 表示相等3、Comparable示例
class Student implements ComparableStudent{ private String name; private int age; private float score; public Student(String name,int age,float score){ this.name name; this.age age; this.score score; } public String toString(){ return name\t\tthis.age\t\tthis.score; } public int compareTo(Student stu){ if(this.scorestu.score){ return -1; }else if(this.scorestu.score){ return 1; }else{ if(this.age stu.age){ return 1; }else if(this.age stu.age){ return -1; }else{ return 0; } } }
}
public class ComparableDemo01{ public static void main(String args[]){ Student stu[] {new Student(张三,20,99.0f),new Student(李四,22,90.0f),new Student(王五,22,100.0f)}; java.util.Arrays.sort(stu); //进行排序操作 for(int i0;istu.length;i){ //循环输出数组内容 System.out.println(stu[i]); } }
} 4、比较器的Comparable接口类
示例
import java.util.* ;
class Student{ // 指定类型为Student private String name ; private int age ; public Student(String name,int age){ this.name name ; this.age age ; } public boolean equals(Object obj){ // 覆写equals方法 if(thisobj){ return true ; } if(!(obj instanceof Student)){ return false ; } Student stu (Student) obj ; if(stu.name.equals(this.name)stu.agethis.age){ return true ; }else{ return false ; } } public void setName(String name){ this.name name ; } public void setAge(int age){ this.age age ; } public String getName(){ return this.name ; } public int getAge(){ return this.age ; } public String toString(){ return name \t\t this.age ; }
}; class StudentComparator implements ComparatorStudent{ // 实现比较器 // 因为Object类中本身已经有了equals()方法 public int compare(Student s1,Student s2){ if(s1.equals(s2)){ return 0 ; }else if(s1.getAge()s2.getAge()){ // 按年龄比较 return 1 ; }else{ return -1 ; } }
}; public class ComparatorDemo{ public static void main(String args[]){ Student stu[] {new Student(张三,20), new Student(李四,22),new Student(王五,20), new Student(赵六,20),new Student(孙七,22)} ; java.util.Arrays.sort(stu,new StudentComparator()) ; // 进行排序操作 for(int i0;istu.length;i){ // 循环输出数组中的内容 System.out.println(stu[i]) ; } }
};