首页 > 编程语言 > 详细

TreeMap定制排序和自然排序

时间:2019-12-24 14:42:19      阅读:145      评论:0      收藏:0      [点我收藏+]

TreeMap定制排序和自然排序
自然排序是实现Comparable接口的方法。代码如下:


@Override
public int compareTo(Object o) {
   if (o instanceof Person){
    Person p = (Person) o;
    int i= this.age.compareTo(p.age);
    if (i == 0){
      return this.name.compareTo(p.name);
    }else {
      return i;
    }

    }
    return 0;
}
定制排序是通过Comparator实现compare接口。具体如下:

 

@Test
public void treeSet(){

  Comparator comparator = new Comparator() {
  @Override
  public int compare(Object o1, Object o2) {
  if (o1 instanceof Person && o2 instanceof Person){
    Person p1 = (Person) o1;
    Person p2 = (Person) o2;
    int i = p1.getAge().compareTo(p2.getAge());
    if (i == 0){
    return p1.getName().compareTo(p2.getName());
    }
    return i;
    }
  return 0;
  }
};
  Map map = new TreeMap(comparator);
  map.put(new Person("AA", "21"),34);
  map.put(new Person("BB", "24"),45);
  map.put(new Person("CC", "21"),66);
  map.put(new Person("AA", "26"),33);
  Set set = map.keySet();
  for (Object o : set) {
  System.out.println(o);
}

}
如有不足之处,请多指教。

TreeMap定制排序和自然排序

原文:https://www.cnblogs.com/mentouxin/p/12091272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!