工具类Collections直接排序演示

Person.java:

package review;

public class Person implements Comparable<Person> {
	@Override
	public int compareTo(Person o) {
		// TODO Auto-generated method stub
		return age - o.getAge();
	}

	private int age;
	private String name;

	public Person(int age, String name) {
		super();
		this.age = age;
		this.name = name;
	}

	@Override
	public String toString() {
		return "Person [age=" + age + ", name=" + name + "]";
	}

	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
Student.java:

package review;

public class Student extends Person {
	public Student(int age, String name) {
		super(age, name);
	}
}
MyComparator.java

package review;

import java.util.Comparator;

//应该明确比较器操作的类型
public class MyComparator implements Comparator<Person> {
	// 复写
	public int compare(Person a, Person b) {
		return a.getAge() - b.getAge();
	}
}
Test.java

package review;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test {

	public static void main(String[] args) {
		// 存储复合数据类型
		List<Person> persons = new ArrayList<>();
		List<Student> students = new ArrayList<>();

		persons.add(new Person(12, "Mary "));
		persons.add(new Person(13, "Smith"));
		persons.add(new Person(11, "David"));

		students.add(new Student(18, "亮亮       "));
		students.add(new Student(19, "花花       "));
		students.add(new Student(17, "豆豆       "));

		System.out.println("P-unsorted:" + persons);
		System.out.println("S-unsorted:" + students + "\n");

		// 排序之前父类Person应该实现Comparable接口并且复写CompareTo方法
		Collections.sort(persons);
		Collections.sort(students);
		System.out.println("P-sorted-Comparable:" + persons);
		System.out.println("S-sorted-Comparable:" + students + "\n");

		// 排序之前要有一个新的比较器继承实现Comparator,并且复写compare函数
		Collections.sort(persons, new MyComparator());
		Collections.sort(students, new MyComparator());
		System.out.println("P-sorted-Comparator:" + persons);
		System.out.println("S-sorted-Comparator:" + students + "\n");
	}
}
结果:





猜你喜欢

转载自blog.csdn.net/qq_32182637/article/details/79168491