| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2101 人关注过本帖
标题:TreeSet重写Comparator排序
只看楼主 加入收藏
悟空丨
Rank: 2
等 级:论坛游民
帖 子:18
专家分:50
注 册:2018-10-6
收藏
 问题点数:0 回复次数:3 
TreeSet重写Comparator排序
程序代码:
/*

 * 向TreeSet集合中加入5个员工的对象

 * 根据员工的年龄(升序)进行排序

 * 若年龄相同,再根据工龄(降序)来排序

 * 若工龄相同,再根据薪水(降序)排序

 * 若薪水相同,再根据姓名首字母升序排列

 */
public class StaffCompare implements Comparator<Staff>{    
    public int compare(Staff o1, Staff o2) {
        int n1 = o1.getAge() - o2.getAge();
        int n2 = o1.getWorkAge() - o2.getWorkAge();
        int n3 = (o1.getSalary(), o2.getSalary());
        boolean n4 = o1.getName().equals(o2.getName());
        return (0==n1) ? ((0==n2)? (n3==0 ? -1 : (n3<0 ? 1 : -1)) : (n2<0? 1: -1)):(n1>0? 1:-1);
    }
}

员工类中:
私有属性:姓名name,年龄age,工龄workage,工资salary;
并且重写了hashCode和equals。
main测试中:
用Iterator遍历出结果。

大家看看比较器Comparator有没有别的方式?
搜索更多相关主题的帖子: 重写 排序 员工 相同 int 
2018-10-19 23:15
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
Comparable

剑栈风樯各苦辛,别时冰雪到时春
2018-10-19 23:19
悟空丨
Rank: 2
等 级:论坛游民
帖 子:18
专家分:50
注 册:2018-10-6
收藏
得分:0 
回复 2楼 林月儿
好的,我去试试~~~
2018-10-19 23:26
TysonKoothra
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:71
专家分:374
注 册:2018-10-21
收藏
得分:0 
这个三元操作符用的好长。
2018-10-21 21:21
快速回复:TreeSet重写Comparator排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050442 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved