首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >另一个类的构造函数内部的比较器初始化

另一个类的构造函数内部的比较器初始化
EN

Stack Overflow用户
提问于 2017-12-29 19:24:19
回答 1查看 174关注 0票数 0

我偶然发现了下面的代码。在这里,我们如何在优先级队列的构造函数中初始化比较器?

我知道比较器是Java中的一个接口,应该在另一个类中实现。

理想情况下,我们应该在类中实现比较器,并在PriorityQueue构造函数中使用它的初始化。

但是下面的代码是有效的。多么?

代码语言:javascript
复制
  PriorityQueue<ArrayList<Integer>> heap = new PriorityQueue<ArrayList<Integer>>(10, new Comparator<ArrayList<Integer>>(){
            public int compare(ArrayList<Integer> list1, ArrayList<Integer> list2) {
                return list1.get(2) - list2.get(2);
            }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-29 20:15:46

在参考代码快照中,使用构造函数创建了优先级队列对象,该构造函数将两个对象作为参数,即int类型和类型比较器。

在参考代码快照中,比较器类型对象作为匿名内部类创建,并作为第二个对象传递给PriorityQueue构造函数。

为了更好地理解,您可以在以下两条语句中打断该语句。第一个将创建比较器对象,第二个将该对象传递给阻塞队列。

Comparator>比较器=新的Comparator>(){公共int比较( ArrayList list1,ArrayList list2) {返回列表1.get(2)- list2.get(2);};

PriorityQueue>堆=新PriorityQueue>(10,比较器);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48027429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档