【发布时间】:2021-08-05 07:14:02
【问题描述】:
PriorityQueue<Integer> pq = new PriorityQueue<>(); // first
Queue<Integer> pq = new PriorityQueue<>(); // second
我的问题:
哪个更好?我看到很多例子都使用第一个,但我也听说过program against interface。声明的类型应尽可能通用。 PriorityQueue 实现了 Queue 接口,因此从第二个参数开始,我们应该使用第二个。
PS:
这个例子与ArrayList<Integer> list = new ArrayList<>() vs
List<Integer> list = new ArrayList<>(),因为我从未见过任何生产代码将第一个用于ArrayList,而我们总是使用第二个。但是,我确实看到很多示例使用第一个作为PriorityQueue。
【问题讨论】:
标签: java interface queue priority-queue