У меня много проблем с назначением для моего класса структур данных. Мне нужно реализовать двойную очередь приоритетов с использованием дважды связанногоList, но код, который мой профессор предоставил для тестирования, имеет в нем какие-то странные вещи. Часть, которую я не понимаю, почему он использует DoubleEndedPriorityQueue, но затем добавляет объекты вместо целых. Ошибка, которую я получаю, заключается в том, что нет метода add (object), который является истинным.Проблемы с общей двукратной очередью приоритетов
public class Test1ForAssign2 {
public static void main(final String[] args) {
final DoubleEndedPriorityQueue<Integer> sampleL = (DoubleEndedPriorityQueue<Integer>)new ListDoubleEndedPriorityQueue();
sampleL.add((Object)5);
sampleL.add((Object)12);
sampleL.add((Object)5);
sampleL.add((Object)1);
sampleL.add((Object)(-7));
sampleL.add((Object)3);
System.out.println("Priority Queue Contents: ");
System.out.println("Deleting: " + sampleL.deleteMin());
System.out.println("Deleting: " + sampleL.deleteMax());
}
public interface DoubleEndedPriorityQueue<AnyType>{
void makeEmpty ();
void add (AnyType x);
AnyType deleteMin ();
AnyType deleteMax ();
AnyType findMin ();
AnyType findMax ();
boolean isEmpty ();
}
Спасибо @hugh, вот что я подумал. Кстати, не могли бы вы помочь мне с чем-то еще? он также дал нам этот код: частный компаратор super AnyType> cmp; частный узел first = null; частный узел last = null; , но я понятия не имею, как использовать компаратор, я пытаюсь выполнить cmp.compare (obj1, obj2), но он всегда дает мне исключение nullpoint, и я уверен, что оба объекта не равны нулю. Я думаю, это потому, что класс Integer не реализует компаратор, но как он ожидает от нас этого? –
(Как правило, это плохое решение для публикации нескольких вопросов в одном месте, но я постараюсь дать некоторые указатели). Integer не реализует Comparator, но он реализует Comparable - если вы ищете те, которые вы сможете найти в статьях на как они отличаются. 'compare' может вызывать NPE, если любой из аргументов равен NULL, в противном случае это похоже на то, что код в' compare' неверен (возможно, использует поле с нулевым значением без нулевой проверки). Вы используете отладчик? Использование одного сделает вашу жизнь намного лучше. – hugh