TreeSet、排序集合、自定义排序

TreeSet自定义排序(两个数的差距,从大到小排序,可以扩充到两个点的距离等)

		TreeSet set = new TreeSet();
		set.comparator();
		set.add(10);
		set.add(5);
		set.add(8);
		set.add(100);
		set.add(-12);
		Iterator it = set.iterator();
		while (it.hasNext()) {
			int str = (int)it.next();
			System.out.println(str);
			
		}
		
		//按 ComparableExamp 排序,两个数按差距大小,倒序排序
		TreeSet<Entity> tree = new TreeSet<Entity>(new ComparableExamp());
		tree.add(new Entity(1,9));
		tree.add(new Entity(3,6));
		tree.add(new Entity(5,1));
		tree.add(new Entity(9,20));
		Iterator<Entity> ite = tree.iterator();
		while (ite.hasNext()) {
			Entity entity = ite.next();
			System.out.println(entity);	
		}
public class Entity{
	public int num1;
	public int num2;
	public Entity(int num1,int num2){
		this.num1 = num1;
		this.num2 = num2;
	}
	@Override
	public String toString() {
		return "Entity [num1=" + num1 + ", num2=" + num2 + "]";
	}
}

import java.util.Comparator;
public class ComparableExamp  implements Comparator<Entity>{
	@Override
	public int compare(Entity o1, Entity o2) {
		int sum = o1.num1 - o1.num2;
		int sum2 = o2.num1 - o2.num2;
		return sum - sum2;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值