java compareto重写_java中,重写compareTo方法实现按年龄来排序 - Break易站

本文通过一个示例展示了如何在Java中使用TreeMap按年龄排序,重点在于Person类重写compareTo方法,使得Map中的数据根据年龄升序排列。示例代码创建了一个TreeMap,放入了几个Person对象,并打印出按年龄排序后的结果。
摘要由CSDN通过智能技术生成

import java.util.Set;

import java.util.TreeMap;

public class TreeMap2 {

public static void main(String[] args) {

// TODO Auto-generated method stub

TreeMap pdata = new TreeMap();

pdata.put(new Person("张三", 30), "zhangsan");

pdata.put(new Person("李四", 20), "lisi");

pdata.put(new Person("王五", 10), "wangwu");

pdata.put(new Person("小红", 5), "xiaohong");

// 得到key的值的同时得到key所对应的值

Set keys = pdata.keySet();

for (Person key : keys) {

System.out.println(key.getAge() + "-" + key.getName());

}

}

}

// person对象没有实现Comparable接口,所以必须实现,这样才不会出错,才可以使treemap中的数据按顺序排列

// 前面一个例子的String类已经默认实现了Comparable接口,详细可以查看String类的API文档,另外其他

// 像Integer类等都已经实现了Comparable接口,所以不需要另外实现了

class Person implements Comparable {

private String name;

private int age;

public Person(String name, int age) {

super();

this.name = name;

this.age = 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;

}

/**

* TODO重写compareTo方法实现按年龄来排序

*/

@Override

public int compareTo(Person o) {

// TODO Auto-generated method stub

if (this.age > o.getAge()) {

return 1;

} else if (this.age < o.getAge()) {

return -1;

}

return age;

}

}

输出:

5-小红

10-王五

20-李四

30-张三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值