以下是一个简单的 Java 线性表(ArrayList)的实现示例:
import java.util.Arrays;
public class MyArrayList<E> {
private static final int DEFAULT_CAPACITY = 10;
private int size = 0;
private Object elements[];
public MyArrayList() {
elements = new Object[DEFAULT_CAPACITY];
}
public void add(E e) {
if (size == elements.length) {
ensureCapacity();
}
elements[size++] = e;
}
@SuppressWarnings("unchecked")
public E get(int i) {
if (i >= size || i < 0) {
throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);
}
return (E) elements[i];
}
public void remove(int i) {
if (i >= size || i < 0) {
throw new IndexOutOfBoundsException("Index: " + i + ", Size " + i);
}
Object temp = elements[i];
int numElts = elements.length - ( i + 1 ) ;
System.arraycopy( elements, i + 1, elements, i, numElts ) ;
size--;
}
public int size() {
return size;
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append('[');
for(int i = 0; i < size ;i++) {
sb.append(elements[i].toString());
if(i<size-1){
sb.append(",");
}
}
sb.append(']');
return sb.toString();
}
private void ensureCapacity() {
int newSize = elements.length * 2;
elements = Arrays.copyOf(elements, newSize);
}
}
这个类实现了一些基本的线性表操作,例如添加元素(add)、获取元素(get)、删除元素(remove)和获取线性表大小(size)。ensureCapacity
方法用于在需要时增加线性表的容量。toString
方法可以用于打印线性表的内容。注意,这个实现是泛型的,可以存储任何类型的对象。