插入操作
中间插入
package ch00_array;
public class ArrayIns {
private int[] array;
private int size;
public ArrayIns(int capacity) {
this.array = new int[capacity];
size = 0;
}
public void insert(int element, int index) {
if (index < 0 || index > size) {
throw new IndexOutOfBoundsException("数组下标越界!");
}
for (int i = size; i >= index; i--) {
array[i + 1] = array[i];
}
array[index] = element;
size++;
}
public void output() {
for (int i = 0; i < size; i++) {
System.out.println(array[i]);
}
}
public static void main(String[] args) {
ArrayIns arrayIns = new ArrayIns(10);
arrayIns.insert(3, 0);
arrayIns.insert(4, 1);
arrayIns.insert(5, 2);
arrayIns.insert(6, 3);
arrayIns.insert(6, 1);
arrayIns.output();
}
}
超范围插入
package ch00_array;
public class ArrayIns {
private int[] array;
private int size;
public ArrayIns(int capacity) {
this.array = new int[capacity];
size = 0;
}
public void insert(int element, int index) {
if (index < 0 || index > size) {
throw new IndexOutOfBoundsException("数组下标越界!");
}
if (size >= array.length) {
resize();
}
for (int i = size-1; i >= index; i--) {
array[i + 1] = array[i];
}
array[index] = element;
size++;
}
private void resize() {
int[] newArray = new int[array.length * 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
public void output() {
for (int i = 0; i < size; i++) {
System.out.println(array[i]);
}
System.out.println("数组长度"+array.length);
}
public static void main(String[] args) {
ArrayIns arrayIns = new ArrayIns(4);
arrayIns.insert(3, 0);
arrayIns.insert(4, 1);
arrayIns.insert(5, 2);
arrayIns.insert(6, 3);
arrayIns.insert(6, 1);
arrayIns.output();
}
}
删除操作
public int delete(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("超出数组实际元素范围!");
}
int deleteElement = array[index];
for (int i = index; i < size - 1; i++) {
array[i] = array[i + 1];
}
size--;
return deleteElement;
}