我在RMI工作,我有不同的服務器(類),我想從這些類中的對象存儲在arraylist,然後我想通過返回一些整數數字的共享方法排序它們。不同類別的對象排序arraylist
2
A
回答
0
使用Comparator解決此問題。
2
假設這些對象是Foo
類型不落實Comparable<Foo>
但確實有一個方法public int getBar()
的,你可以通過自己的Comparator<Foo>
到Collections#sort()
像這樣:
List<Foo> foos = /* whatever */;
Collections.sort(foos, new Comparator<Foo>() {
@Override
public int compare(Foo a, Foo b) {
return Integer.compare(a.getBar(), b.getBar());
}
});
注意Integer#compare(int, int)
is only since Java 7。如果你使用任何舊的,用這個來代替實施:
public int compare(Foo a, Foo b) {
int x = a.getBar();
int y = b.getBar();
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
0
假設共享方法是public Integer sharedMethod()
然後執行如下排序:
List<SharedClass> list = new ArraList<SharedClass>();
....
//Sorting here
Collections.sort(list, new Comparator<SharedClass>(){
@Override
public int compare(SharedClass sc1, SharedClasssc2){
return sc1.sharedMethod().compareTo(sc1.sharedMethod());
}
});
如果是返回int
然後使用Integer.compare
方法(Java7),如下:
//Sorting here
Collections.sort(list, new Comparator<SharedClass>(){
@Override
public int compare(SharedClass sc1, SharedClasssc2){
return Integer.compare(sc1.sharedMethod(), sc1.sharedMethod());
}
});
如果使用Java版本低於7,則:
//Sorting here
Collections.sort(list, new Comparator<SharedClass>(){
@Override
public int compare(SharedClass sc1, SharedClasssc2){
int value1 = sc1.sharedMethod();
int value2 = sc1.sharedMethod();
//return 1, if value1 is greater,-1 if smaller and 0 if equal to value2.
return (value1 < value2) ? -1 : ((value1 > value2) ? 1 : 0);
}
});
相關問題
- 1. 如何對類別Arraylist進行排序?
- 2. 排序ArrayList的對象
- 3. generic compareTo排序不同的對象類
- 4. 如何排序不同類別對象的數組?
- 5. 對類ArrayList的排序
- 6. 排序ArrayList對象的抽象類的子類的實例
- 7. ArrayList對象排序混淆
- 8. 來自不同類的對象ArrayList
- 9. 排序對象的ArrayList,但排序鍵不斷變化
- 10. 對ArrayList對象運行排序方法
- 11. 按浮點字段對類對象的ArrayList排序
- 12. 對對象的ArrayList進行排序(ArrayList在排序後沒有被更改)
- 13. 在C中排序對象的ArrayList#
- 14. 我如何排序arrayList中的對象?
- 15. 如何排序對象的ArrayList?
- 16. 在Java中排序對象的ArrayList
- 17. 排序我對象的ArrayList問題
- 18. 基於對象的ArrayList排序值
- 19. 如何排序對象的ArrayList?
- 20. Java:屬性上的對象排序Arraylist
- 21. 將ArrayList對象添加到不同對象類型的現有ArrayList中
- 22. 通過ArrayList對象中的特定值對ArrayList排序?
- 23. 想要通過幾個不同的屬性對對象ArrayList進行排序
- 24. C#達到不同類別的對象
- 25. 不同類別的對象向量
- 26. 調用不同類別的對象
- 27. 屬於超類的不同類的對象的ArrayList?
- 28. Java定製ArrayList對象排序
- 29. ArrayList使用比較器排序對象
- 30. 選擇用對象ArrayList排序
一些示例代碼會很有幫助! – poplitea