1700444560
1700444561
//一个老板
1700444562
1700444563
list.add(new Employee(1001,“张三”,Position.Boss));
1700444564
1700444565
//两个经理
1700444566
1700444567
list.add(new Employee(1006,“赵七”,Position.Manager));
1700444568
1700444569
list.add(new Employee(1003,“王五”,Position.Manager));
1700444570
1700444571
//两个职员
1700444572
1700444573
list.add(new Employee(1002,“李四”,Position.Staff));
1700444574
1700444575
list.add(new Employee(1005,“马六”,Position.Staff));
1700444576
1700444577
//按照id排序,也就是按照资历深浅排序
1700444578
1700444579
Collections.sort(list);
1700444580
1700444581
for(Employee e:list){
1700444582
1700444583
System.out.println(e);
1700444584
1700444585
}
1700444586
1700444587
}
1700444588
1700444589
在收集数据时按照职位高低来收集,这也是“为领导服务”理念的体现嘛,先登记领导,然后是小领导,最后是普通员工。排序后的输出如下:
1700444590
1700444591
Employee@1037c71[id=1001,name=张三,position=Boss]
1700444592
1700444593
Employee@b1c5fa[id=1002,name=李四,position=Staff]
1700444594
1700444595
Employee@f84386[id=1003,name=王五,position=Manager]
1700444596
1700444597
Employee@15d56d5[id=1005,name=马六,position=Staff]
1700444598
1700444599
Employee@efd552[id=1006,name=赵七,position=Manager]
1700444600
1700444601
是按照id号升序排列的,结果正确,但是,有时候我们希望按照职位来排序,那怎么做呢?此时,重构Employee类已经不合适了,Employee已经是一个稳定类,为了一个排序功能修改它不是一个好办法,那有什么更好的解决办法吗?
1700444602
1700444603
有办法,看Collections.sort方法,它有一个重载方法Collections.sort(List<T>list, Comparator<?super T>c),可以接受一个Comparator实现类,这下就好办了,代码如下:
1700444604
1700444605
class PositionComparator implements Comparator<Employee>{
1700444606
1700444607
@Override
1700444608
1700444609
public int compare(Employee o1,Employee o2){
[
上一页 ]
[ :1.70044456e+09 ]
[
下一页 ]