Hallo, also ich versuche, eine Warteschlange zu sehen, aber der Compiler wirft immer wieder einen Symbolfehler finden kann nicht finden.Kann Symbol nicht finden .peek()
public class HelloWorld{
interface Queue<T> {
Queue<T> enqueue(T ele);
T dequeue();
}
public static class QueueArray<T> implements Queue<T>{
int top;
private T[] arr;
private int total, next;
public int first;
public QueueArray()
{
arr = (T[]) new Object[2];
top = 0;
}
private void resize(int capacity)
{
T[] tmp = (T[]) new Object[capacity];
for (int i = 0; i < total; i++){
tmp[i] = arr[(first + i) % arr.length];
}
arr = tmp;
first = 0;
next = total;
}
public QueueArray<T> enqueue(T ele)
{
if (arr.length == total)
{
resize(arr.length * 2);
}
arr[next++] = ele;
if (next == arr.length)
{
next = 0;
}
total++;
return this;
}
public Object peek(){
if(first > 0){
return arr[first - 1];
}
else{
return null;
}
}
public T dequeue()
{
if (total == 0)
{
throw new java.util.NoSuchElementException();
}
T ele = arr[first];
if (++first == arr.length)
{
first = 0;
}
if(--total > 0 && total == arr.length/4)
{
resize(arr.length/2);
}
return ele;
}
}
public static void main(String []args){
Queue<Integer> greeting = new QueueArray<>();
greeting.enqueue(1).enqueue(2).enqueue(3);
System.out.println(greeting.dequeue());
System.out.println(greeting.peek());
System.out.println(greeting.dequeue());
System.out.println(greeting.dequeue());
System.out.println(greeting.dequeue());
}
}
Ich verstehe nicht, was da los ist gehen, wenn ich die .peek() aufrufen es die gleiche Art und Weise geschrieben ist. Jede Hilfe wird geschätzt.
Ihre 'Peek' Methode nicht auf Ihrer Schnittstelle nicht vorhanden ist. – Blorgbeard
ah, danke, ich bin immer noch ziemlich neu für diese Dinge, danke. – Pat