我在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