1. 程式人生 > >java建立陣列,實現增刪改查

java建立陣列,實現增刪改查

1:建立陣列

int[] arr = new int[10];//建立陣列,初始化大小為10

2:訪問資料資料項

    arr[0]=1;//這個是設定她的值
            System.out.println(arr[0]);//這個是獲取她的值,通過列印的方式

3:陣列的初始化

int[] arr2 = new int[]{1,2,3};

二:

面向物件程式設計方式

1:使用自定義類來封裝陣列

package SJJG;

public class Myarray {
    private long[] array;
    //表示有效資料的長度
    private int elements;
    public Myarray() {
        // TODO Auto-generated constructor stub
//        在構造方法裡給陣列賦值
        array = new long[50];
    }
    //在重構構造方法
    public Myarray(int maxSize){
        array = new long[maxSize];//這個大小是我的構造方法裡傳入的
    }
    //接下來插入資料
    public void insert(int values){
        //第一次新增是為0的,即values
        array[elements]=values;
        elements++;//讓她遞增
        //當第二次呼叫這兒新增的時候,array[elements]裡面是為1,然後遞增為2
    }
    //顯示資料
    public void diplay(){
        System.out.print("[");
        //用for迴圈遍歷,i=0,下標為0
        for (int i = 0; i < elements; i++) {
            System.out.print(array[i]+"  ");
        }
        System.out.println("]");
    }
    //查詢資料
    //我們是根據什麼來查詢呢?我們是根據值來查詢,返回她的所有值
    public int search(long value){
        int i;//i在外面進行一個判斷,然後在迴圈裡面賦值
//        比如說我查詢這個15,arry.insert(15);,那麼她的索引是2
        //怎麼樣來查呢?同樣也是經過一個迴圈
        for (i = 0; i < elements; i++) {
            if (value == array[i]) {//如果值是等於array[i]
//                如果查詢到了,就跳出
                break;
                
            }
        }
        if(i==elements){//意思就是說for迴圈結束了,都查詢完還沒找到這個元素,就返回-1
            return -1;
        }else{
            return i;
        }
        
    }
//    查詢資料,根據索引來查
    public long get(int index){
        //這個時候需要對index進行判斷
        if(index >=elements || index<0)//如果index大於有效元素,或者小於0
        {
            //丟擲一個異常
            throw new ArrayIndexOutOfBoundsException();
        }else{
            return array[index];
        }
        
        
    }
//刪除資料
//    根據index來刪除資料
    public void delete(int index){
        //刪除也需要對index進行判斷,判斷完成後應該怎麼樣呢?
                if(index >=elements || index<0)//如果index大於有效元素,或者小於0
                {
                    //丟擲一個異常
                    throw new ArrayIndexOutOfBoundsException();
                }
        //假設陣列的值分別為1,3,4,5,如果要刪除3,那麼我們把4的值賦值給array[1],即3就可以了,覆蓋她
//        5接著覆蓋4,最後把elements減去1;表示有效長度減去1
                else{
                    //i從index開始,小於i++
                for (int i = index; i < elements; i++) {
                    //前面的值等於後面的值
                    array[index]=array[index+1];
                }
                //最後還要對有效的長度減1
                elements--;
                }
    }
    //更新資料
    public void chang(int index,int newValue){
        //同樣,因為有index,所以需要判斷
        if(index >=elements || index<0)//如果index大於有效元素,或者小於0
        {
            //丟擲一個異常
            throw new ArrayIndexOutOfBoundsException();
        }
        //思考如何進行更新?
        else{
//            只需要把index的值進行一個設定就可以了
            array[index]=newValue;
        }
    }
}

2:新增類的方法來實現資料操作

package SJJG;

public class Test {
public static void main(String[] args) {
    //建立類的例項
    Myarray arry = new Myarray();
    arry.insert(13);//插入資料
    arry.insert(12);
    arry.insert(15);
//    呼叫顯示方法,會把陣列全都打印出來
    arry.diplay();
    //進行查詢
    System.out.println(arry.search(12));//打印出1,查詢到
    System.out.println(arry.search(11));//查詢不到,返回-1
    //進行索引查詢
    System.out.println(arry.get(2));//打印出15
//    System.out.println(arry.get(4));//丟擲異常
//    System.err.println(arry.get(-3));//丟擲異常
    //刪除資料
    arry.delete(1);
    //再進行顯示
    arry.diplay();
    //進行改
    arry.chang(0,19);
    arry.diplay();//此刻13已經變成19了
}
}