Comparable接口

public interface Comparable<T>

Comparable接口对实现了它的每个类的对象进行了强制性的排序,所有说,类实现了Comparable接口就表明它的实例具有内在的排序关系。Comparable接口中只用一个compareTo方法,实现类中的compareTo方法决定了实现类的对象的排序原则。通常我们会把实现类的所有对象放在数组中使用,当调用Arrays.sort(数组的引用)时,会对数组中的实现类的对象自动排序。

如果对象在List中,则使用Collections.sort(List的引用对象);

import java.util.Arrays;

/**
 * @author 塞上名猪
 * 演示Comparable接口的用法
 */
public class test {
	public static void main(String[] args) {
		Boy[] boys=new Boy[4];
		boys[0]=new Boy("shang",3);
		boys[1]=new Boy("zhu", 5);
		boys[2]=new Boy("sai", 1);
		boys[3]=new Boy("ming", 4);
		Arrays.sort(boys);
		for(Boy boy:boys){
			System.out.println("name="+boy.getName()+",age="+boy.getAge());
		}
	}
}

/**
 * @author 塞上名猪
 * 定义一个实现了Comparable接口的实体
 */
public class Boy implements Comparable<Boy>{
	public Boy(String name,int age){
		this.name=name;
		this.age=age;
	}
	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;
	}
	public int compareTo(Boy o) {
		if(this.age<o.age){
			return -1;
		}else if(this.age>o.age){
			return 1;
		}
		return 0;
	}
}

程序运行结果为

name=sai,age=1

name=shang,age=3

name=ming,age=4

name=zhu,age=5


你可能感兴趣的:(java,接口,comparable)