Comparator类型的排序:
package haohaoxuexi;
import java.util.Comparator;
import java.util.TreeSet;
public class lianxi09 {
	public static void main(String[] args) {
		//建立实例,进行实验
		lianxi08 p1=new lianxi08("易学习",100);
		lianxi08 p2=new lianxi08("侯亮平",1000);
		lianxi08 p3=new lianxi08("高小琴",1200);
		lianxi08 p4=new lianxi08("李达康",50);
		//利用TreeSet容器进行数据排序
		//这里用的是java.util.Comparator的方法,定义一个排序的标准,从而实现排序
		TreeSet<lianxi08> persons=new TreeSet<lianxi08>(
				new Comparator<lianxi08>(){
					@Override
					public int compare(lianxi08 o1, lianxi08 o2) {
						return -(o1.getHandsome()-o2.getHandsome());
					}
				});
		//将定义好的类实例加入到定义好的TreeSet容器中
		persons.add(p1);
		persons.add(p2);	
		persons.add(p3);
		persons.add(p4);
		System.out.println(persons);
		//这里的排序是直接按顺序放进定义好的容器中,而非将写好的容器中的内容进行排序,数据更改之后不会影响顺序,但之后更改可能会引起数据的重复,故一般状况下,不要修改数据。
	}
}
package haohaoxuexi;
public class lianxi08 {
	//定义一个类,进行操作,设置私有属性
	private String nameString;
	private int handsome;
	//定义无参构造器
	public lianxi08() {
	}
	//设置setter和getter方法进行该类属性的操作
	public String getNameString() {
		return nameString;
	}
	public void setNameString(String nameString) {
		this.nameString = nameString;
	}
	public int getHandsome() {
		return handsome;
	}
	public void setHandsome(int handsome) {
		this.handsome = handsome;
	}
	public lianxi08(String nameString, int handsome) {
		super();
		this.nameString = nameString;
		this.handsome = handsome;
	}
	//重写toString方法实现格式化输出
	@Override
	public String toString() {
		return "姓名:"+this.nameString+",帅气指数:"+this.handsome+"\n";
	}
}
Comparable类型的排序:
package haohaoxuexi;
import java.util.TreeSet;
public class lianxi11 {
	public static void main(String[] args) {
		
		//定义类的实例
		linaxi10 w1=new linaxi10("垃圾回收员",12000);
		linaxi10 w2=new linaxi10("农民工",8000);
		linaxi10 w3=new linaxi10("程序员",4000);
		//定义一个TreeSet容器
		TreeSet<linaxi10> employees=new TreeSet<linaxi10>();
		//将实例加入到TreeSet容器中
		employees.add(w1);
		employees.add(w2);
		employees.add(w3);
		//进行输出
		System.out.println(employees);
		//此处的定义与之前的方法一样,不要进行数据的修改
		}
}
package haohaoxuexi;
//通过利用java.lang.Comparable中的排序方法实习排序
public class linaxi10 implements java.lang.Comparable<linaxi10>{
	//定义私有属性
	private String typeString;
	private double salary;
	//重写compareTo方法实现排序格式的定义
	@Override
	public int compareTo(linaxi10 o) {
		
		return this.salary>o.salary?1:(this.salary==o.salary?0:-1);
	}
	//设置无参构造器
	public linaxi10() {
		super();
		// TODO Auto-generated constructor stub
	}
	//设置setter和getter方法
	public String getTypeString() {
		return typeString;
	}
	public void setTypeString(String typeString) {
		this.typeString = typeString;
	}
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	public linaxi10(String typeString, double salary) {
		super();
		this.typeString = typeString;
		this.salary = salary;
	}
	//重写toString定义输出格式
	@Override
	public String toString() {
		return "工种:"+this.typeString+",工资:"+this.salary+"\n";
	}
	
}
原文:http://www.cnblogs.com/zx931880423/p/6759121.html