1. 程式人生 > >Java版資料結構之面向物件的陣列

Java版資料結構之面向物件的陣列

操作簡介

  • 獲取陣列長度
  • 列印陣列
  • 末尾新增一個元素
  • 在指定位置插入一個元素
  • 刪除一個元素
  • 獲取指定位置元素
  • 修改指定位置元素
public class MyArray {
    private int[] elements;

    public MyArray() {
        elements=new int[0];
    }

    //獲取陣列長度
    public int length(){
        return elements.length;
    }

    //列印陣列
    public void show(){
        for(int i=0;i<elements.length;i++){
            System.out.print(elements[i]+" ");
        }
        System.out.println();
    }

    //新增一個元素
    public void add(int element){
        int[] newArr=new int[elements.length+1];
        for(int i=0;i<elements.length;i++){
            newArr[i]=elements[i];
        }
        newArr[elements.length]=element;
        elements=newArr;
    }

    //插入一個元素
    public void insert(int index,int element){
        if(index>elements.length-1){
            throw new RuntimeException("插入索引陣列越界");
        }
        int[] newArr=new int[elements.length+1];
        for(int i=0;i<elements.length;i++){
            if(i<index){
                newArr[i]=elements[i];
            }else{
                newArr[i+1]=elements[i];
            }
        }
        newArr[index]=element;
        elements=newArr;
    }

    //刪除一個元素
    public void delete(int index){
        if(index>elements.length-1){
            throw new RuntimeException("刪除索引陣列越界");
        }
        int[] newArr=new int[elements.length-1];
        for(int i=0;i<newArr.length;i++){
            if(i<index){
                newArr[i]=elements[i];
            }else{
                newArr[i]=elements[i+1];
            }
        }
        elements=newArr;
    }

    //獲取指定位置元素
    public int get(int index){
        if(index>elements.length-1){
            throw new RuntimeException("獲取索引陣列越界");
        }
        return elements[index];
    }

    //修改指定位置元素
    public void update(int index,int element){
        if(index>elements.length-1){
            throw new RuntimeException("修改索引陣列越界");
        }
        elements[index]=element;
    }
}