QueueItem
nesnesini içeren bir öncelik sırası oluşturdum. Ancak, QueueItem
sınıfında zaten getPriority()
uygulamış olmama rağmen, PriorityQueue
sınıfının insert()
yönteminde hala cannot resolve method getPriority()
diyor. İşteNeden Java bu yöntemi uyguladığımda "getPriority() yöntemini çözemiyor" diyor?
public class PriorityQueue<QueueItem> implements Iterator<QueueItem> {
private int maxSize;
private int size;
private Map<Integer, List<QueueItem>> pq;
public PriorityQueue(int maxSize) {
if (maxSize < 0) throw new IllegalArgumentException();
this.maxSize = maxSize;
pq = new HashMap<Integer, List<QueueItem>>();
}
public boolean isEmpty() {
return size == 0;
}
public int size() {
return size;
}
public void insert (QueueItem item) {
int priority = item.getPriority(); //here is where the problem occured
// pq.get(priority)
}
}
benim QueueItem
sınıftır: Gördüğünüz gibi
public class QueueItem implements Comparable{
private int priority;
private Object value;
public QueueItem() {
priority = -1;
value = null;
}
public QueueItem(int priority, Object value) {
this.priority = priority;
this.value = value;
}
public int getPriority() {
return priority;
}
public Object getValue() {
return value;
}
public int compareTo(Object o) {
if (!(o instanceof QueueItem)) throw new ClassCastException();
if (((QueueItem)o).getPriority() == -1) throw new NullPointerException();
return priority - ((QueueItem) o).getPriority();
}
}
, yöntem getPriority()
sadece bir tamsayı öncelik verir
İşte benim PriorityQueue
sınıftır.
Yaptığım hatayı işaret edebilecek biri varsa, şimdiden teşekkür ederim. Teşekkürler.
Başka hatalarınız var mı? 'PriorityQueue',' Yineleyici’yi uygular ancak uygulanan 'yineleyici 'yöntemlerini göremiyorum. –
@JonnyHenly Yerden tasarruf etmek için FirstityQueue sınıfının geri kalanını yapıştırmadım, Iterator uyguladım. – BroLegend
@JonnyHenly elbette ... – BroLegend