淄博做网站58同城,昆明网站建设贴吧,沈阳专门做网站,网站开发遇到什么问题作者简介#xff1a; zoro-1#xff0c;目前大一#xff0c;正在学习Java#xff0c;数据结构等 作者主页#xff1a; zoro-1的主页 欢迎大家点赞 #x1f44d; 收藏 ⭐ 加关注哦#xff01;#x1f496;#x1f496; 类之间的比较 固定需求式比较器 固定需求式
通过… 作者简介 zoro-1目前大一正在学习Java数据结构等 作者主页 zoro-1的主页 欢迎大家点赞 收藏 ⭐ 加关注哦 类之间的比较 固定需求式比较器 固定需求式
通过类实现Comparable泛型接口重写compareTo方法来进行比较
import java.util.Arrays;class Car implements ComparableCar{public int size1;public String namepika;public Car(int size, String name) {this.size size;this.name name;}Overridepublic int compareTo(Car o) {return this.size -o.size;}Overridepublic String toString() {return Car{ size size , name name \ };}
}
public class Text3 {public static void compar(Car[] cars){for(int i0;icars.length;i){for(int j0;jcars.length-i-1;j){if(cars[j].compareTo(cars[j1])0){Car tempcars[j];cars[j]cars[j1];cars[j1]temp;}}}}public static void main(String[] args) {Car[] carsnew Car[3];Car car new Car(2, aodi);cars[0]car;Car car1 new Car(3, benchi);cars[1]car1;Car car2new Car(1,fala);cars[2]car2;compar(cars);System.out.println(Arrays.toString(cars));}
}
代码解读 Car类继承Comparable泛型泛型就是要进行比较的类 重写compareTo方法方法的参数是要和当前引用的对象比较的对象 返回this.size -o.size本类中的size减去比较的对象的size大于返回正数小于返回负数相等返回0 比较器
在类外创一个新的类实现Comparator泛型接口重写compare方法来进行比较
import java.util.Arrays;
import java.util.Comparator;class Car implements ComparableCar{public int size1;public String namepika;public Car(int size, String name) {this.size size;this.name name;}Overridepublic int compareTo(Car o) {return this.size -o.size;}Overridepublic String toString() {return Car{ size size , name name \ };}
}
class sizecompare implements ComparatorCar{Overridepublic int compare(Car o1, Car o2) {return o1.size-o2.size;}
}
class namecompare implements ComparatorCar{Overridepublic int compare(Car o1, Car o2) {return o2.name.compareTo(o1.name);}
}
public class Text3 {public static void main(String[] args) {Car[] carsnew Car[3];Car car new Car(2, aodi);cars[0]car;Car car1 new Car(3, benchi);cars[1]car1;Car car2new Car(1,fala);cars[2]car2;//sizecompare sizecomparenew sizecompare();//Arrays.sort(cars,sizecompare);namecompare namecomparenew namecompare();Arrays.sort(cars,namecompare);System.out.println(Arrays.toString(cars));}
}
代码解读 在类外面创建两个比较器类sizecomparenamecompare一个比较size一个比较name实现Comparator重写compare方法他的两个参数是连着的两个对象返回值如果是前一个减后一个是升序后一个减前一个是降序然后将比较器实例化当做参数传入Arrays类的第二个参数形参用Comparator泛型来接收发生了向下转型 今天的分享到这里就结束了感谢大家支持创作不易希望大家能给博主个三连