Java Sorting : sort an array of objects by property, 对象不允许使用 Comparable

标签 java arrays sorting properties comparable

我有一个类 Library,它包含一个 Book 对象数组,我需要根据 Book 的属性(Title 或 PageNumber)对该数组进行排序。问题是我不允许将 Comparable 类与 Book 一起使用。您建议我如何对图书馆中的书籍数组进行排序?写我自己的排序?或者有更简单的方法吗?如果您需要代码片段,尽管询问!

最佳答案

您可以提供一个Comparator 来比较您想要的任何类型,Comparable 或其他。

对于你使用的数组和集合

Arrays.sort(array, myComparator);
Collections.sort(list, myComparator);

即使像 TreeSet 这样的排序集合也可以采用自定义比较器

例如

Collections.sort(books, new Comparator<Book>() {
   public int compare(Book b1, Book b2) {
      return if b1 is greater return +1, if b2 is smaller return -1 otherwise 0
   }
});

关于Java Sorting : sort an array of objects by property, 对象不允许使用 Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449766/

相关文章:

java - 以内存有效的方式计算 MongoDB(Java 驱动程序)中的唯一对象

arrays - 从由任意两个或多个连续自然数相乘形成的排序数组中查找第 N 个数字

c - 为什么代码会进入无限循环

javascript - 关联数组未在服务器发送事件环境中填满

sort() 后 JavaScript 十进制数数组顺序不正确

python - 多种方法对列表进行排序

java - 如何从 jar 文件动态运行 java 类

java - 用于 linux 的 java 中的全局 mouseListener

java - Android:如何用多行长的项目拆分一个很长的字符串?

python - 如何为numpy数组创建圆形蒙版?