gpt4 book ai didi

java - 优先级队列中的比较器有错误

转载 作者:行者123 更新时间:2023-11-29 05:38:11 25 4
gpt4 key购买 nike

除了 HeapPriorityQueue 构造函数中的比较器之外,我的堆优先级队列类中的每一行都没有错误。我不知道如何修复它,所以不会有错误。由于错误,我什至无法检查算法是否正常工作。有人可以帮帮我吗?

import java.util.ArrayList;
import java.util.Comparator;

public class HeapPriorityQueue<K extends Comparable<K>,V> implements PriorityQueue<K,V>
{
protected Comparator<K> comp;

.
. //other lines of code
.

public HeapPriorityQueue() {
heap = new ArrayList<Entry<K,V>>();
heap.add(null);
comp = new Comparator<K>(); //<-------- with error
}

.
. //other lines of code
.

comp.compare(oneKey,anotherKey); //<---- using comp here

.
. //other lines of code
.

}

最佳答案

Comparator 是一个接口(interface),所以你不能用new 实例化它。您可以使用匿名类将比较委托(delegate)给对象:

comp = new Comparator<K>() {
@Override
public int compare(K a, K b) {
return a.compareTo(b);
}
}

关于java - 优先级队列中的比较器有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com