public interface Comparable<T> {
public int compareTo(T o);
}
public class Person implements Comparable<Person> {
int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return age;
}
@Override
public int compareTo(Person p) {
return this.age - p.getAge();
}
public static void main(String[] args) {
Person[] people = new Person[]{new Person("xujian", 20), new Person("xiewei", 10)};
System.out.println("排序前");
for (Person person : people) {
System.out.print(person.getName() + ":" + person.getAge());
}
Arrays.sort(people);
System.out.println("\n排序后");
for (Person person : people) {
System.out.print(person.getName() + ":" + person.getAge());
}
}
}
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}
/* 比较器 */
public class PersonCompartor implements Comparator<Person> {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge()-o2.getAge();
}
}
public class Person {
int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
Person[] people = new Person[]{new Person(20), new Person(10)};
System.out.println("排序前");
for (Person person : people) {
System.out.print(person.getAge());
}
Arrays.sort(people, new PersonCompartor());
System.out.println("\n排序后");
for (Person person : people) {
System.out.print(person.getAge());
}
}
}