我有一个类 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/