用java.util.Collections中的sort方法對兩個類的物件進行排序
這對標題提出的問題提供了一種比較笨的解決方案,採用了外部比較器介面Comparator。
import java.util.*;
class A implements Comparable<A> {
int num;
public A(int num){
this.num = num;
}
@Override
public int compareTo(A a){
return this.num > a.num ? 1 : -1;
}
@Override
public String toString(){
return "A-"+ this.num;
}
}
class B implements Comparable<B> {
int num;
public B(int num){
this.num = num;
}
@Override
public int compareTo(B b){
return this.num > b.num ? 1 : -1;
}
@Override
public String toString(){
return "B-"+ this.num;
}
}
class ABComparator implements Comparator {
public int compare(Object o1, Object o2) {
if((o1 instanceof A) && (o2 instanceof B)){
A a = (A) o1;
B b = (B) o2;
if(a.num > b.num){
return 1;
} else {
return -1;
}
}
if((o1 instanceof B) && (o2 instanceof A)){
B a = (B) o1;
A b = (A) o2;
if(a.num > b.num){
return 1;
} else {
return -1;
}
}
if((o1 instanceof A) && (o2 instanceof A)){
A a = (A) o1;
A b = (A) o2;
return a.compareTo(b);
}
if((o1 instanceof B) && (o2 instanceof B)){
B a = (B) o1;
B b = (B) o2;
return a.compareTo(b);
}
return 0;
}
}
class Test1 {
public static void main(String[] args) {
List ls = new ArrayList();
ls.add(new A(1));
ls.add(new A(15));
ls.add(new A(20));
ls.add(new A(4));
ls.add(new A(13));
ls.add(new B(11));
ls.add(new B(14));
ls.add(new B(12));
ls.add(new B(13));
ls.add(new B(10));
Collections.sort(ls, new ABComparator());
System.out.println(ls);
}
}
相關文章
- iOS中對NSArray中自定義的物件進行排序iOS物件排序
- 在Java中對集合當中的物件進行排序Java物件排序
- 對list集合中的物件進行排序(轉載)物件排序
- 在命令列用 sort 進行排序命令列排序
- JavaScript 使用sort()方法從數值上對陣列進行排序JavaScript陣列排序
- 依據類的成員來對類進行排序的泛型方法 (轉)排序泛型
- 在Watir中進行物件對映(Object Map)的方法物件Object
- python用List的內建函式list.sort進行排序Python函式排序
- 在Struts中應用Validator進行兩個欄位的比較的方法。
- 對類物件的方法操作物件
- 對N個數進行排序排序
- 使用XPathExpression類對XML進行排序 (轉)ExpressXML排序
- Collections sort()排序方法排序
- 根據陣列中物件進行排序陣列物件排序
- 排序(對於 sort 函式的使用)排序函式
- 陣列進行排序的方法陣列排序
- C語言-對一個結構體中的欄位進行排序C語言結構體排序
- 一個命令對文字進行高效排序排序
- Python中用來排序的方法sort、sortedPython排序
- 對字典進行排序排序
- java stream()流對兩個集合進行比對Java
- 遍歷物件鍵值對的兩種方法物件
- python 對字典的值進行排序Python排序
- Collections.sort()方法,字元排序字元排序
- 隨機錯亂排序(sort的應用)隨機排序
- 用原生Js利用sort方法 實現圖片的正 倒排序和隨機排序JS排序隨機
- 深入理解python中的排序sortPython排序
- Javascript陣列排序sort方法和自定義排序方法JavaScript陣列排序
- JavaScript中陣列Array.sort()排序方法詳解JavaScript陣列排序
- Treeset的兩種排序方法排序
- mongodb常用的兩種group方法,以及對結果排序MongoDB排序
- [Shell] Sort排序的例子排序
- Array中物件的排序物件排序
- 使用Collections對list的內容進行排序排序
- 對N個數進行從大到小排序排序
- 如何在Python中對dicts列表進行排序Python排序
- Arrays.Sort()中的那些排序演算法排序演算法
- Python中sort()方法的使用Python