Я пытаюсь написать программу для колледжа, чтобы вставлять элементы в векторный массив. Однако мои методы 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
Это домашнее задание, поэтому я предполагаю, что он не может использовать класс java.util.Vector. – him
Почему бы не использовать ArrayList