使用比较器按字母顺序排序对象?

时间:2015-12-10 20:59:41

标签: java sorting

我正在尝试使用Collections.sort按标题按字母顺序对一组图书对象进行排序,当我运行它时,它似乎没有给我任何输出数据的方法。

public static void SortBooks(Scanner sc, ArrayList<Book> books) {
    Collections.sort(books, new Comparator<Book>() {
        public int compare(Book q1, Book q2) {
            return q1.getBookTitle().compareToIgnoreCase(q2.getBookTitle());
        } 
    });
}

是否有人知道如何使用System.out.println()将此数据输出到控制台?

1 个答案:

答案 0 :(得分:1)

为了完整性:

public static void SortBooks(Scanner sc, ArrayList<Book> books) {
    Collections.sort(books, new Comparator<Book>() {
        public int compare(Book q1, Book q2) {
            // don't put it in here
            return q1.getBookTitle().compareToIgnoreCase(q2.getBookTitle());
        } 
    });
    // put it here, after the sort
    System.out.println(books);
}

当然,您可以通过迭代书籍并以某种特定方式打印每个成员来产生更好的输出。

for ( Book b : books ) {
    System.out.println("Book: " + b.getBookTitle());
}

或类似。