小编Rea*_*nar的帖子

为什么我可以将比较器对象传递给sort方法?

从我所看到的所有排序方法示例中,我从未遇到过传递比较器定义的示例。如果比较器被设计为返回负数,正数或0来对对象进行排序,那么排序方法对该信息有何作用?排序方法如何从比较器定义中获取有意义的信息并执行其操作?

这是有问题的排序方法:

    public void sort() {
        library.sort(new BookComparator());
    }
Run Code Online (Sandbox Code Playgroud)

这是整个Comparator类:

import java.util.Comparator;

public class BookComparator implements Comparator<Book> {
    public int compare(Book a, Book b) {
        if(a == null || b == null) {
            throw new NullPointerException();
        }

        int result = 0 ;

        if(a.getAuthor() == null) {
            if(b.getAuthor() != null) {
                result = -1;
            }
        } else if(b.getAuthor() == null) {
            result = 1;
        } else {
            result = a.getAuthor().compareTo(b.getAuthor());
        }
        if(result !=0) {
            return result;
        }

        if(a.getTitle() == null) { …
Run Code Online (Sandbox Code Playgroud)

java sorting arraylist compareto

1
推荐指数
1
解决办法
56
查看次数

标签 统计

arraylist ×1

compareto ×1

java ×1

sorting ×1