【发布时间】:2015-06-03 18:08:39
【问题描述】:
对于这个通用数组,我添加了方法 reverse(),它必须在不使用其他元素数组的情况下反转数组,并且我尝试仅使用交换操作“原位”执行反转。但我可能弄错了,如果是这样,如何仅使用交换操作“原地”反转它?
import java.util.Collections;
class GenericArray<E> {
private E[] array;
private int size;
public GenericArray() {
array = (E[]) new Object[10];
size = 0;
}
public E get(int i) {
return array[i];
}
public void set(int i, E value) {
if (i < size)
array[i] = value;
}
public void add(E value) {
array[size++] = value;
}
public boolean isFull() {
return size == array.length;
}
public void remove(int i) {
for (int j = i; j < size; j++)
array[j] = array[j + 1];
size--;
}
public void insert(int i, E value) {
for (int j = size; j >= i; j--)
array[j + 1] = array[j];
array[i] = value;
size++;
}
public void display() {
for (int i = 0; i < size; i++)
System.out.print(array[i] + " ");
System.out.println();
}
public E reverse() {
Collections.reverse(array);
}
}
【问题讨论】:
-
Collections上没有采用数组参数的方法...
标签: java arrays algorithm generics reverse