1. 程式人生 > 其它 >Java基礎-一維陣列

Java基礎-一維陣列

一維陣列Array

陣列參考文件:https://www.cnblogs.com/yinzhengjie/p/8719728.html

陣列記憶體儲的都是相同的資料型別

陣列的基礎內容

  1. 陣列的動態、靜態初始化

    靜態的陣列初始化—》在陣列定義時,就賦予了初始值

  2. 陣列的預設初始化:陣列是引用型別,它的元素相當於類的成員變數,因此陣列分配空間後,其中的每個元素也按照成員變數的規則被隱式初始化

  3. 陣列的元素遍歷

陣列常見異常

陣列越界

import java.util.Arrays;

public class ArrayTest {
    public static void main(String[] args) {
// 靜態初始化 int [] arr1 = {1,2,3,4}; // 動態初始化 int [] arr2 = new int[10]; for (int i =0;i<10;i++){ arr2[i]= i ; } for (int i =0;i<arr2.length;i++){ System.out.println(arr2[i]); } int[][] arr4={{3,5},{6,7},{8,9}};
//查詢陣列中的字串 int a= Arrays.binarySearch(arr4[0],3); int b =Arrays.binarySearch(arr1,7); int c =Arrays.binarySearch(arr1,34); System.out.println(a); System.out.println(b); System.out.println(c); //比較兩個陣列是否相等 int[] arr3= new int[]{3,3,3,5,9};
int[] arr5= new int[]{3,3,3,5,9}; Boolean aaa = Arrays.equals(arr5,arr3); System.out.println(aaa); //插入填充陣列元素 int[] arr6= new int[]{1,3,6,5,9}; int[] arr8= new int[]{1,3,6,5,9}; int[] arr7= new int[]{122,333,433,35,229}; // 最後arr6全是20 Arrays.fill(arr6,20); for (int i =0;i<arr6.length;i++){ System.out.println(arr6[i]); } //將arr7的第3到5位全部填充為29 Arrays.fill(arr7,3,5,29); for (int i =0;i<arr7.length;i++){ System.out.println(arr7[i]); } //陣列拷貝-陣列越界:arr7共5個元素,下標值:0~4,從下標3開始copy只可以再複製2個元素,所以length=4會造成,放到到了資料中不存在的索引,導致陣列越界 // System.arraycopy(arr6,1,arr7,3,4); // length:從1到2都可以 System.arraycopy(arr6,1,arr7,3,2); for (int i =0;i<arr7.length;i++){ System.out.print(arr7[i]+","); } // 也會陣列越界 System.out.println(arr7[20]); } }

陣列的預設值

public class ArrayDefault {
    public static void main(String[] args) {
        int [] arr2 = new int[8];
//        引用資料型別陣列
        String [] arr1 = new String[8];

        System.out.println(arr2[4]);
        // 引用資料型別陣列的預設值是null
        System.out.println(arr1[4]);
    }
}

Arrays類的常用方法

toString

sort

binarySearch 查詢陣列中的字串

asList

equals 比較兩個陣列是否相等

插入填充陣列元素

import javax.xml.bind.SchemaOutputResolver;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

//Arrays類包含用來運算元組的各種方法
//主要有以下幾種 靜態 方法(針對一維陣列)
//toString
//sort
//binarySearch 只針對有序陣列
//asList


public class ArraysClassTest {

        public static void main(String[] args) {

                int[] arrInt = {55,44,33,22,11};
                String[] as = {"1", "2", "3"};
                //toString,public static String toString(Array[] array)引數為陣列
                //將陣列按照預設格式輸出為字串
                System.out.println(Arrays.toString(arrInt));

                Arrays.sort(arrInt);
                System.out.println(Arrays.toString(arrInt));

                //binarySearch只可針對有序陣列進行查詢
                int a = Arrays.binarySearch(arrInt,33);
                System.out.println(a);

                //asList,將陣列轉化為list進行返回
//                注意:集合類Collection只能用來儲存引用資料型別!所以List<int> 會報錯
//                List<int> li = Arrays.asList(arrInt);

                List<String> sli= Arrays.asList(as);
                List<String> sl2 = new ArrayList<String>(Arrays.asList(as));
                sli.add("test");
                System.out.println(sli);
        }

}

陣列的應用-氣泡排序

import java.util.Arrays;

public class BubbleSortTest {

    static int[] Bubble(int [] arr){
        for (int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-1-i;j++){

                if(arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        return arr;
    }

    public static void main(String[] args) {
        int[] ars= new int[]{2,64,3,6,43,2,3,100};
//        Bubble(ars);
        Arrays.sort(ars);
        for (int i=0;i<ars.length;i++){
        System.out.println(ars[i]);}
    }
}