Test
package com.vince;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] nums = {34,54,22,3,5,6,7,87,9};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
String[] names = {"jack","tom","菲菲","粪粪"};
Arrays.sort(names);
System.out.println(Arrays.toString(names));
Cat[] cats = {new Cat("愤愤",1),new Cat("菲菲",4),new Cat("Tom",2)};
Arrays.sort(cats);
System.out.println(Arrays.toString(cats));
Dog[] dogs = {new Dog("愤愤",1),new Dog("菲菲",4),new Dog("Tom",2)};
Arrays.sort(dogs,new DogComparator());//注意这 要告诉排序的 我使用这个类
System.out.println(Arrays.toString(dogs));
}
}
Cat 使用com
package com.vince;
/**
* 自定义对象,要实现比较排序
* 1、可以实现Comparable的comparaTo方法
* @author vince
* @description
*/
public class Cat implements Comparable<Cat>{
private String name;
private int age;
public Cat() {
super();
}
public Cat(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Cat [name=" + name + ", age=" + age + "]";
}
@Override
public int compareTo(Cat o) {
// if(this.age<o.age)return -1;
// if(this.age>o.age)return 1;
// return 0;
return this.age-o.age;
}
}
Dog 使用
package com.vince;
public class Dog {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Dog [name=" + name + ", age=" + age + "]";
}
public Dog(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Dog() {
super();
}
}
根据oo原则 对修改关闭 对扩展开放
当Dog类写好后 不想跟Cat类一样改 所以另外写一个类
实现Comparator接口
package com.vince;
import java.util.Comparator;
public class DogComparator implements Comparator<Dog>{
@Override
public int compare(Dog o1, Dog o2) {
return o1.getAge()-o2.getAge();
}
}