public class Person implements Comparable {
private String name;
private int age;
public Person(String name, int age) {
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 "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public int compareTo(Object o) {
if (o instanceof Person){
Person p = (Person) o;
if (this.age > p.age){
return 1;
} else if (this.age < p.age){
return -1;
} else {
return 0;
}
}
return 0;
}
}
public class Animal {
private String name;
private int age;
public Animal(String name, int age) {
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 "Animal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class MainTest {
public static void main(String[] args) {
Person p1 = new Person("z3",19);
Person p2 = new Person("l4",12);
Person p3 = new Person("w5",13);
Person p4 = new Person("z6",23);
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
Collections.sort(list);
list.forEach(item ->{
System.out.println(item);
});
Animal a1 = new Animal("z3",19);
Animal a2 = new Animal("l4",12);
Animal a3 = new Animal("w5",13);
Animal a4 = new Animal("z6",23);
List<Animal> list2 = new ArrayList<>();
list2.add(a1);
list2.add(a2);
list2.add(a3);
list2.add(a4);
Collections.sort(list2, new Comparator<Animal>() {
@Override
public int compare(Animal o1, Animal o2) {
if (o1.getAge() > o2.getAge()){
return 1;
} else if (o1.getAge() < o2.getAge()){
return -1;
} else {
return 0;
}
}
});
list2.forEach(item -> {
System.out.println(item);
});
}
}