我正在嘗試編寫一個程序供大學插入元素到基於向量的數組中。但是,我的insertAtRank
和removeAtRank
方法似乎不起作用。任何幫助是極大的讚賞。insertAtRank向量算法
這是到目前爲止我的代碼:
public class ArrayVector implements Vector {
int n ;
Object[] A ;
Object element ;
public ArrayVector() {
A = new Object[10] ;
n = 0 ;
}
public int size() {
return n;
}
public boolean isEmpty() {
return n == 0;
}
public Object elemAtRank(int rank) throws RankOutOfBoundsException {
return A[rank];
}
public Object replaceAtRank(int rank, Object element) throws RankOutOfBoundsException {
A[rank] = element ;
return element;
}
public String toString() {
int size = size();
String output = "" + size + "\t";
for (int i = 0 ; i < size ; i++){
output += A[i] + " ";
}
return output;
}
public void insertAtRank(int rank, Object element) throws RankOutOfBoundsException {
for (int i = n ; i < rank ; n--){
A[i] = A[i+1] ;
}
A[rank] = element ;
n++ ;
}
public Object removeAtRank(int rank) throws RankOutOfBoundsException {
element = A[rank];
for (int i = rank ; i < n-2 ; rank++){
A[i] = A[i+1] ;
}
n = n-1 ;
return element ;
}
public static void main(String[] args) throws RankOutOfBoundsException {
ArrayVector newArray = new ArrayVector() ;
System.out.println (newArray.toString()) ;
newArray.insertAtRank(0, "c");
System.out.println (newArray.toString()) ;
newArray.insertAtRank(1, "a");
System.out.println (newArray.toString()) ;
newArray.removeAtRank(0) ;
System.out.println (newArray.toString()) ;
newArray.insertAtRank(2, "t");
System.out.println (newArray.toString()) ;
}
}
爲什麼你不滿意內置矢量?你想爲這兩種方法做什麼?在你的語境中什麼是「排名」? – Kent 2014-11-21 23:48:46
這是一項家庭作業,所以我猜他不能使用java.util.Vector類。 – him 2014-11-22 00:00:01
爲什麼不使用ArrayList