0
類VectorQueue
這裏是一個實現向量方法的隊列數據結構。在我的測試類的底部,我可以成功編譯代碼,如「myVector.enqueue(20);」,其中myVector是VectorQueue
類的實例。它的實際類型Queue
- 在這裏看到爲什麼我不能在VectorQueue的這個實例上實現我的Vector方法?
Queue<Integer> myVector = new VectorQueue<Integer>();
我的問題是:有沒有辦法使用的實例「myVector」向量方法一旦被現實化類型隊列?我已經試過如下:
((Vector<T>) myVector).insertAtRank(2,5);
我也試圖讓我的主類VectorQueue實現Queue和矢量接口,但它並沒有幫助。我還想知道爲什麼不能有多種實現類型?
package W7;
public class VectorQueue<T> implements Queue<T> {
public Vector<T> myVector = new ArrayVector<T>();
public void enqueue(T e) {
myVector.insertAtRank(myVector.size(), e);
}
public T front() {
return myVector.elemAtRank(0);
}
public T dequeue() {
return myVector.removeAtRank(0);
}
public boolean isEmpty() {
return myVector.isEmpty();
}
public int size() {
return myVector.size();
}
public String toString(){
return myVector.toString();
}
public static void main(String[] args) throws VectorFullException,
RankOutOfBoundsException {
Queue<Integer> myVector = new VectorQueue<Integer>();
try {
myVector.enqueue(10);
System.out.println(myVector);
myVector.enqueue(5);
System.out.println(myVector);
myVector.dequeue();
System.out.println(myVector);
myVector.enqueue(15);
System.out.println(myVector);
myVector.enqueue(3);
System.out.println(myVector);
myVector.dequeue();
System.out.println(myVector);
myVector.enqueue(7);
System.out.println(myVector);
myVector.dequeue();
System.out.println(myVector);
myVector.enqueue(20);
System.out.println(myVector);
((Vector<T>) myVector).insertAtRank(2,5);
} catch (VectorFullException RankOutOfBoundsException) {
System.out.println("Error");
}
int total = 0;
while(! myVector.isEmpty()){
total += myVector.dequeue();
}
System.out.println("The total size of the contents: " + total);
}
}
這實際上不起作用。我嘗試過這個。 – COOLBEANS
擴展類Vector Vector並且還實現隊列,您也可以使用Vector的方法。 –
user3297129
矢量是一個接口,所以它只能實現,而不能擴展。我試着在VectorQueue類中同時使用Vector和Queue實現,我認爲它應該工作,但是沒有。它沒有。 –
COOLBEANS