java - 对来自不同类的对象的数组列表进行排序

标签 java

我在 RMI 中工作,我有不同的服务器(类),我想将这些类中的对象存储在数组列表中,然后我想通过返回一些整数的共享方法对它们进行排序。

最佳答案

假设这些对象的类型为 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);
   } 

这是exactly how Integer#compare() works internally .

关于java - 对来自不同类的对象的数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779490/

相关文章:

java - Chrome 自定义标签在浏览时预加载网页?

java - 从类扩展的泛型到底是什么意思?

java - 通用类型数组的可能方法?

java - Hadoop MapReduce 错误不同的数据类型

java - 使用软键盘(数字密码键盘)上的 "OK"键而不是单击按钮?

java - 如何找到文本文件中最小的数字? ( java )

java - 如何使Java(AppEngine)中的延迟任务在失败时不重复?

java - #1411 - 不正确的日期时间值 : '11:21:21' for function str_to_date

java - Java getCodeBase() 方法如何工作?

java - 无法从 HttpServletRequest 中获取内容