1. 程式人生 > 其它 >陣列的定義及其使用-一維陣列

陣列的定義及其使用-一維陣列

陣列的定義

陣列是相同型別資料的有序集合

陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成

其中,每一個數據稱作一個數組元素,每個陣列元素可以通過一個下標來訪問她們。

陣列的宣告建立

首先必須宣告陣列變數,才能在程式中使用陣列。下面是宣告陣列變數的語法:

dataType[] arrayRefVar //首選的方法

dataType arrayRefVar[] //效果相同

Java語言使用new操作符來建立陣列,語法如下:

dataType[] arrayRefVar = new dataType[arraySize];

陣列的元素是通過索引來訪問的,陣列索引從0開始。

獲取陣列長度:arrays.length

Java記憶體分析

Java記憶體

存放new的物件和陣列

可以被所有的執行緒共享,不會存放別的物件引用

存放基本變數型別(會包含這個基本型別的具體資料)

引用物件的變數(會存放這個引用在堆裡面的具體地址)

方法區

可以被所有的現場共享

包含了所有的class和static變數

三種初始化

靜態初始化

int[] a = {1,2,3};

Man[] mans = {new Man(1,1), new Man(2,2)};

動態初始化

int[] a = new int[2];

a[0] = 1;

a[1] = 2;

陣列的預設初始化

陣列是引用型別,他的元素相當於類的例項變數,因此陣列一經分配空間,其中的每個元素也被按照例項變數統一的方式被隱式初始化

public class ArrayDemo03 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
        //列印全部陣列元素
        for (int i = 0; i < arrays.length; i++){
            System.out.println(arrays[i]);
    }
        System.out.println("==================");
        //計算所有陣列元素的和
        int sum = 0;
        for(int i = 0; i < arrays.length; i++){
            sum+=arrays[i];
        }
        System.out.println("sum="+sum);
        System.out.println("==================");
        //查詢最大元素
        int max = arrays[0];
        for(int i = 0; i < arrays.length; i++){
            if(max < arrays[i]){
                max = arrays[i];
            }
        }
        System.out.println("最大值是:"+max);



    }

陣列的四個基本特點

其長度是確定的。陣列一旦被建立,它的大小就是不可改變的。

其元素必須是相同型別,不允許出現混合型別。

陣列中的元素可以是任何資料型別,包括基本型別和引用型別。

陣列變數屬引用型別,陣列也可以看成是物件,陣列中的每個元素相當於該物件的成員變數。

陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始類型別還是其他物件型別,陣列物件本身是在堆中的。

陣列引用

package com.sanwin.array;

public class ArrayDemo04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4,5};
    //    for (int array : arrays) {
   //         System.out.println(array);
    //    }
        System.out.println("==============");
        printArrays(arrays);
        System.out.println("--------------");
        int[] aa =  reverse(arrays);
        printArrays(aa);

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

            }
        //反轉陣列
        public static int[] reverse(int[] arrays){
             int[] result = new int[arrays.length];
             //反轉的操作
            for(int i = 0, j= result.length-1; i <arrays.length ; i++,j--){

                result[j] = arrays[i];

            }
            return result;
        }
}

陣列小結

陣列是相同資料型別(可以為任意型別)的有序集合

陣列也是物件。陣列元素相當於物件的成員變數

陣列長度的確定的,不可變的,如越界,則報:ArrayIndexOutofBounds