Java Comparator语法?

时间:2018-04-25 09:56:08

标签: java comparator

我对以下代码片段感到有点困惑:

PriorityQueue<String> pq = new PriorityQueue<>(new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return counts.get(b) - counts.get(a);
    }
});

PriorityQueue的构造函数是PriorityQueue​(Comparator<? super E> comparator)Comparator是一个接口。

我的问题:

  1. 上面的代码似乎同时结合了接口实现和实例化,它是如何工作的?
  2. 如果没有将Comparator实例分配给变量或名称,它如何通过它?
  3. 参考: https://sp18.datastructur.es/materials/discussion/examprep05sol.pdf

1 个答案:

答案 0 :(得分:0)

在这种情况下,Comparator是一个匿名的内部类实例。