这里写的是一个动态数组(包括增删查改CURD 方法的具体调用,主函数在最下面)
import java.util.Arrays;
//动态数组(顺序表)完整性 (CURD即包含增删改查的完整数组)
public class DynamicArrary {
private int[] elementData;
private int size;
//构造方法 完成一个长度传值
public DynamicArrary(){this.elementData = new int[10];}
public DynamicArrary(int size){
this.elementData = new int[size];
}
public void addFirst(int data){
addIndex(0,data);
}
public void addIndex(int index , int data){
if (index < 0 || index >size){
System.err.println("add index illegal!");
return;
}
if(size == elementData.length){
grow();
}
for (int i = size - 1; i >= index ; i--) {
elementData[i + 1] = elementData[i];
}
elementData[index] = data;
size ++;
}
public void addLast(int data){
addIndex(size,data);
}
public void removeIndex(int index){
if(index < 0 || index >= size) {
System.err.println("remove index illegal!");
return;
}
for(int i = index + 1 ; i < size - 1;i++){
elementData[i] = elementData[i+1];
}
size--;
elementData[size] = 0;
}
public void removevalue(int value){
for (int i = 0; i < size; i++) {
while(elementData[i] == value && i < size){
removeIndex(i);
}
}
}
public int getSize(){return size;}
//
// public int clear(){
//
// }
public void grow(){
elementData = Arrays.copyOf(elementData,elementData.length << 1);
}
public int set(int index, int newData){
if (rangeCheck(index)){
int oldValue = elementData[index];
elementData[index] = newData;
return oldValue;
}
return -1;
}
public int get(int index){
if (rangeCheck(index)){
int value = elementData[index];
return value;
}
return -1;
}
public boolean rangeCheck(int index){
if (index < 0 || index > size){
System.err.println("当前index非法,index >= 0 && index <= size");
return false;
}
return true;
}
public boolean contains(int data){
for (int i = 0; i < size; i++) {
if (elementData[i] == data){
return true;
}
}
return false;
}
//主函数
public static void main(String[] args) {
DynamicArrary dynamicArrary = new DynamicArrary();
dynamicArrary.addFirst(1);
dynamicArrary.addFirst(3);
dynamicArrary.addFirst(4);
dynamicArrary.addLast(6);
//[4,1,3,6]
System.out.println(dynamicArrary);
dynamicArrary.addIndex(0,2);
//[2,4,1,3,6]
System.out.println(dynamicArrary);
dynamicArrary.set(3,10);
//[2,4,1,10,6]
System.out.println(dynamicArrary);
System.out.println(dynamicArrary.contains(9));
System.out.println(dynamicArrary.get(2));
}
@Override
public String toString(){
String ret = "[";
for (int i = 0; i < size; i++) {
ret += elementData[i] + ", ";
}
ret += "]";
return ret;
}
}
调用展示图:



