这里我比较的只是书名。但之后我想将它与作者和书号进行比较。据我所知,必须只有一种覆盖方法。所以请帮我解决这个问题。
@Override
public int compareTo(Book bk) {
return this.bookTitle.compareTo(bk.bookTitle);
}
最佳答案
您必须为不同的排序类型实现不同的比较器,并将它们传递给 Collections.Sort 方法。参见 Comparator
Class AuthorSort implements Comparator<Book>
{
public int compare(Book b1, Book b2){
// do comparision on Author
}
}
实现书号排序
Class BookNoSort implements Comparator<Book>
{
public int compare(Book b1, Book b2){
// do comparision on Book Number
}
}
在 Collections 类上调用 Sort 方法并提供不同的实现
Collections.sort(list, new BookNumberSort());
Collections.sort(list, new AuthorSort());
关于java - 如何按多个类别对 Arraylist 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22573938/