-2
嗨,所以我想我偷看一個隊列,但編譯器一直拋出找不到符號錯誤。找不到符號.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());
}
}
我不明白什麼是去當我打電話.peek()它拼寫相同的方式。任何幫助表示讚賞。
你'Peek'方法不會在界面上存在。 – Blorgbeard
啊,謝謝你我對這些東西還很新,謝謝。 – Pat