Java类库之比较器(重点)

时间:2022-06-19
本文章向大家介绍Java类库之比较器(重点),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

比较器(重点)

如果现在要想为一组对象进行排序,那么必须有一个可以区分出对象大小的关系操作,而这个操作在Java之中就是利用比较器完成的。常用比较器:Comparable(核心) 如果要为对象指定比较规则,那么对象所在的类必须实现Comparable接口,下面首先来看一下这个接口的定义:

public interface Comparable<T> {
	public int compareTo(T o);
}

根据文档的要求:要排序的数组所在的类一定要实现此接口,此接口返回的是int型数据,而用户覆写此方法的时候只需要返回三种结果:1(>0)、-1(<0)、0(=0)即可。

范例:实现比较器

package com.pku.wuyu.io;
import java.util.Arrays;
class Person implements Comparable <Person> {
	private String name ;
	private int age ;
	public Person(String name,int age) {
		this.name = name ;
		this.age = age ;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]n";
	}
	@Override
	public int compareTo(Person o) {
		if (this.age > o.age) {
			return 1;
		} else if (this.age < o.age) {
			return -1;
		} else {
			return 0;
		}
	}
}
public class Demo01 {
	public static void main(String[] args) throws Exception {
		Person per[] = new Person[] { new Person("张三", 20),
				new Person("李四", 19), new Person("王五", 21) };
		Arrays.sort(per) ;	// 排序
		System.out.print(Arrays.toString(per));
	}
}

以后不管是何种情况下,只要牵扯到对象数组排序的操作,永远都是比较器Comparable。