1. 程式人生 > >JAVA中的陣列插入與刪除指定元素

JAVA中的陣列插入與刪除指定元素

今天學了Java的陣列,寫了陣列的插入和刪除,本人小白,寫給不會的小白看,大神請忽略,有錯請大家指出來;

/**
給陣列指定位置陣列的插入
*/
import java.util.*;
public class ArrayInsert{
    public static void main(String []args){
        System.out.println("請用鍵盤輸入5個數:");
        int [] array =new int[10];
        Scanner sc=new Scanner(System.in);

        //通過鍵盤向陣列輸入數
for(int i=0;i<array.length-5;i++){ array[i]=sc.nextInt(); } //遍歷陣列 System.out.print("原陣列為:"); for(int a:array){ System.out.print(" "+a); } //向指定的位置插入數 System.out.println("\n請輸入插入位置:有效位置為0-----"+(array.length-1)); int
index=sc.nextInt(); System.out.println("\n請輸入插入的值-----"); int num=sc.nextInt(); //呼叫靜態函式index //遍歷插入後的陣列 System.out.println("插入元素之後的陣列遍歷:"); Insert(index,num,array); for(int i=0;i<array.length;i++){ System.out.print(" "
+array[i]); } } //向陣列指定位置插入資料方法 public static int[] Insert(int index,int num,int a[]){ //如果有元素,在索引之後的元素向後移一位, for(int a[i]=a[i-1]; } a[index]=num; return a; } }
//刪除陣列指定位置的數字。
import java.util.*;
public class ArrayDelete{
    public static void main(String args[]){
        System.out.println("請用鍵盤輸入5個數:");
        int [] array =new int[10];
        Scanner sc=new Scanner(System.in);

        //通過鍵盤向陣列輸入數
        for(int i=0;i<array.length-5;i++){
            array[i]=sc.nextInt();
        }
        //遍歷陣列
        System.out.print("原陣列為:");
        for(int a:array){
            System.out.print("  "+a);
        }
        //刪除在指定位置的數字
        System.out.println("\n輸入你要刪除的位置: 範圍在0---"+(array.length-1));
        int index=sc.nextInt();
        delete(index,array);//呼叫delete方法
        //刪除之後的遍歷
        System.out.println("刪除之後的遍歷:");
        for(int i=0;i<array.length;i++){
            System.out.print("  "+array[i]);
        }
    }
     //陣列的特性是,一旦初始化,則長度確定,所以要刪除陣列中元素,並且長度也隨著刪除而改變,則要重新建立陣列
     /**
*刪除方式1
*/
    public int[] delete(int index, int array[]) {
        //陣列的刪除其實就是覆蓋前一位
        int[] arrNew = new int[array.length - 1];
        for (int i = index; i < array.length - 1; i++) {
            array[i] = array[i + 1];
        }
        System.arraycopy(array, 0, arrNew, 0, arrNew.length);
        return arrNew;
    }
/**
*刪除方式2
*/
    public int[] delete2(int index, int array[]) {
        //陣列的刪除其實就是覆蓋前一位
        int[] arrNew = new int[array.length - 1];
        for (int i = 0; i < array.length - 1; i++) {
            if (i < index) {
                arrNew[i] = array[i];
            } else {
                arrNew[i] = array[i + 1];
            }
        }
        return arrNew;
    }

}