【发布时间】:2011-06-30 10:37:50
【问题描述】:
我已经用数组实现了数组列表:
public class ArrayIndexList<E> {
private E[] A;
private int capacity = 5; // Initial Array Size
private int size = 0;
public ArrayIndexList() {
A = (E[]) new Object[capacity];
}
public void add(int index, E element) {
/* if array is full:
* 1. double the array size
* 2. copy elements to the new array */
if (size == capacity) {
capacity = capacity * 2;
E[] B = (E[]) new Object[capacity];
for (int i = 0;i < size;i++)
B[i] = A[i];
A = B;
}
// shift the elements up
for (int i = size - 1;i >= index;i--)
A[i + 1] = A[i];
// add new element
A[index] = element;
size = size + 1;
}
public E remove(int index) {
E temp = A[index];
//shift elements down
for (int i = index;i < size - 1;i++)
A[i] = A[i + 1];
size = size - 1;
return temp;
}
}
它正在工作,但编译器发出警告:
Type safety: Unchecked cast from Object[] to E[] ArrayIndexList.java
代码有什么问题?
【问题讨论】: