常用类(二)
一、比较器
比较器规范:(接口)
java.util.Comparator package com.JavaSE.homework.Day15.comparatordemo; import java.util.Arrays; public class Practice { public static void main(String[] args) { int[] arr = {1, 2, 3, 45, 5}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); } }
sort(Object[] o,Comparator c);谁调用这个方法,传递一个数组,就会进行排序
两种方式:
第一种:写一个Compartor实现类
package com.JavaSE.homework.Day15.comparatordemo; //说白了 就是套用了这个Compartor的壳,比较过程全是自己写的 import java.util.Comparator; public class ComparatorImp1 implements Comparator { @Override public int compare(Object o1, Object o2) { if (o1 instanceof Student && o2 instanceof Student) { //这里重写没有指定参数类型,传入的参数还得强转,容易出错,还麻烦 if (((Student) o1).getScore() > ((Student) o2).getScore()) { return 1; } else if (((Student) o1).getScore() < ((Student) o2).getScore()) { return -1; } else { return 0; } } else { System.out.println("请比较同一类型!!!"); return 0; } } }
package com.JavaSE.homework.Day15.comparatordemo; import java.util.Arrays; public class Student { private String stuID; private String name; private int score; public String getStuID() { return stuID; } public void setStuID(String stuID) { this.stuID = stuID; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public Student(String stuID, String name, int score) { this.stuID = stuID; this.name = name; this.score = score; } public Student() { } @Override public String toString() { return "Student{" + "stuID='" + stuID + '\'' + ", name='" + name + '\'' + ", score=" + score + '}'; } }
