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 = Double.compare(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);
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007877/viewspace-2794993/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 4、Set集合——HashSet、TreeSet(Comparable、Comparator)
- java TreeSet去重與排序入門Java排序
- Java 8 Comparator: 列表排序Java排序
- Java 集合排序策略介面 ComparatorJava排序
- Comparator.comparing排序使用示例排序
- 字串排序 (java comparator介面的使用)字串排序Java
- Java利用Comparator實現分組排序Java排序
- JAVA Comparator 自定義排序 原始碼分析Java排序原始碼
- List排序Collections.sort 重寫compare排序
- Java 8: Lambda表示式增強版Comparator和排序Java排序
- Java stream sorted使用 Comparator 進行多欄位排序Java排序
- 透過Treeset解決隨機數排序問題隨機排序
- std::map 自定義key型別,重寫operator<() 沒有嚴格弱序引起的“invalid comparator”型別
- Java8-增強版Comparator和排序之Lambda表示式Java排序
- TreeSet
- 希爾排序——重溫排序(二)排序
- 【java】【集合】TreeSetJava
- 重寫equals方法以及重寫tostring方法
- 陣列先去重,後排序陣列排序
- HashSet、TreeSet、CopyOnWriteArraySet和CopyOnWriteArrayList
- JDK原始碼分析-TreeSetJDK原始碼
- 重寫toString
- hashcode重寫
- 重寫ThreadPoolTaskExecutorthread
- 方法重寫
- 為什麼重寫equals必須重寫hashCode
- Comparable與Comparator的區別
- Comparable和Comparator的區別
- 比較器-Comparable和Comparator
- 陣列的去重和排序陣列排序
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- 橫掃Java Collections系列 —— TreeSetJava
- C++重寫C++
- 方法的重寫
- 方法重寫(Override)IDE
- Strangler重寫模式模式
- Java Comparable 和 Comparator 介面詳解Java
- Java基礎系列-Comparable和ComparatorJava