java treeset 降序_java TreeSet的排序之定制排序

TreeSet的自然排序是根据元素的大小进行升序排序的,若想自己定制排序,比如降序排序,就可以使用Comparator接口了:

该接口包含int compare(Object o1,Object o2)方法,用于比较两个对象的大小,比较结果和compareTo方法一致;

要实现定制排序,需要在创建TreeSet集合对象时,提供一个一个Comparator对象,该对象里负责集合元素的排序逻辑;

TreeSet(Comparator comparator)

Eg:

package july7;

//定制排序的话,必须在创建TreeSet集合对象的时候提供一个Comparator方法

import java.util.Comparator;

import java.util.Set;

import java.util.TreeSet;

class Student1{

private Integer age;

public Student1(Integer age) {

super();

this.age = age;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return age + "";

}

}

class MyComparator implements Comparator{

@Override

public int compare(Object o1, Object o2) {

if(o1 instanceof Student1 & o2 instanceof Student1){

Student1 s1 = (Student1)o1;

Student1 s2 = (Student1)o2;

if(s1.getAge() > s2.getAge()){

return -1;

}else if(s1.getAge() < s2.getAge()){

return 1;

}

}

return 0;

}

}

public class Demo15 {

public static void main(String[] args) {

Set s = newTreeSet(newMyComparator());

/**

* 要实现定制排序,需要在创建TreeSet集合对象时,提供一个一个Comparator对象,

* 该对象里负责集合元素的排序逻辑;

*/

s.add(new Student1(140));

s.add(new Student1(15));

s.add(new Student1(11));

s.add(new Student1(63));

s.add(new Student1(96));

System.out.println(s);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值