Java 基本語法---Java數組

Java 基本語法---Java數組


0. 概述

數組:相同類型的數據 按照順序 組成的一種 引用數據類型 。java

數據類型:基本數據類型 + 引用數據類型;數組

引用數據類型:類 + 接口 + 數組 ;函數

一維數組:聲明,建立,初始化,元素的引用,長度code


1. 數組聲明

變量聲明的語法格式: 變量類型 變量名;排序

數組聲明的語法格式:數據類型 [ ] 數組名;(數據類型 數組名[ ])索引

int[] myIntArray;  //首選方法

(int myIntArray[];) //來源於C/C++,效果相同,但不是首選方法

String[] strArray;

2. 數組建立

語法格式一 先聲明後建立接口

數據類型[] 數組名;element

數組名 = new 數據類型[ 數組長度 ];字符串

int[] array;

array = new int[10];

//建立一個長度爲 10 的整型數組array;

語法格式二 聲明的同時進行建立數組io

數據類型 [] 數組名 =  new 數據類型 [ 數組長度 ];

dataType[] arrayRefVar = new dataType[arraySize];
// 1.使用 dataType[arraySize] 建立了一個數組;
// 2.把新建立的數組的引用賦值給了變量 arrayRefVar。
int[] arr = new int[10];    //建立一個長度爲10的整型數組arr

//注意:數組的長度必須給定

3. 數組的初始化

聲明數組的同時給數組賦值,叫作數組的初始化;

int[] arr = {1,2,3,4,5,6,7,8,9,10};

// 數組的長度就是初始化數組時所給數組元素的個數。

4. 數組元素的引用

數組元素的訪問是經過索引訪問的。

語法格式: 數組名[ 下標 ];

注意:下標從0開始(數組索引從0開始,因此索引值從0到array.length - 1);


5. 數組的長度

int[] arr = {0,1,2,3,4,5,6,7,8,9};

//屬性 length 表示數組的長度,例如:arr.length;

6. 案例

6.1 案例1:一維數組的應用

int 數組建立時數組元素默認值爲0;

double數組建立時數組元素默認爲0.0;

char 數組建立時數組元素默認爲 ;

String 數組建立時數組元素默認爲 null;

public class ArrayTest {
    public static void main(String[] args) {
        //聲明一個整型數組
        int[] intArray;
        //聲明一個字符串類型的數組
        String strArray[];
        //建立數組
        intArray = new int[5];
        strArray = new String[10];
        //聲明數組的同時進行建立數組
        double[] doubleArray = new double[4];
        //初始化數組
        char[] chArray = {'a','b','c','d'};
        char[] ch1Array = new char[5];
        System.out.println("ch1Array 數組的長度爲:" + ch1Array.length);
        System.out.println("ch1Array 數組中的第2個元素爲:" + ch1Array[3]);
        System.out.println("chArray 數組的長度爲:" + chArray.length);
        System.out.println("chArray 數組中的第2個元素爲:" + chArray[1]);
        System.out.println("intArray 數組的長度爲:" + intArray.length);
        System.out.println("intArray 數組中的第二個元素爲:" + intArray[1]);
        System.out.println("strArray 數組的長度爲:" + strArray.length);
        System.out.println("strArray 數組中的第5個元素爲:" + strArray[4]);
        System.out.println("doubleArray 數組的長度爲:" + doubleArray.length);
        System.out.println("doubleArray 數組中的第4個元素爲:" + doubleArray[3]);
        System.out.println();

        //循環爲整型數組賦值
        for(int i = 0;i < 5;i++)
        {
            intArray[i] = i + 2;
        }
        //循環輸出整型數組中的元素
        System.out.println("整型數組intArray 中的元素值分別爲:");

        //數組下標越界(數組下標超出範圍)Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        //  at com.ryanjie.ArrayTest.main(ArrayTest.java:51)
//        for(int i= 0;i < 6;i++)
//        {
//            System.out.print(intArray[i] + "    ");
//        }
//        System.out.println();
        for(int i = 0;i < 5;i++)
        {
            System.out.print(intArray[i] + "    ");
        }
        System.out.println();
    }
    
}

Output:
    ch1Array 數組的長度爲:5
    ch1Array 數組中的第2個元素爲: 
    chArray 數組的長度爲:4
    chArray 數組中的第2個元素爲:b
    intArray 數組的長度爲:5
    intArray 數組中的第二個元素爲:0
    strArray 數組的長度爲:10
    strArray 數組中的第5個元素爲:null
    doubleArray 數組的長度爲:4
    doubleArray 數組中的第4個元素爲:0.0

    整型數組intArray 中的元素值分別爲:
    2    3    4    5    6

6.2 案例2:求數組元素的累加和

public class ArraysSum {
    public static void main(String[] args) {
        //求整型數組的累加和
        //定義整型數組
        int[] intArray = new int[5];

        //從鍵盤開始接收數據,爲元素進行賦值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++)
        {
            System.out.println("請輸入第 " + (i + 1) + "個元素的值:");
            intArray[i] = sc.nextInt();
        }

        //輸出intArray 數組中的元素
        System.out.println("數組中的元素分別爲:");
        for(int i = 0;i < intArray.length; i++ )
        {
            System.out.print(intArray[i] + "  ");
        }
        System.out.println();

        //輸出intArray數組中的元素的和
        int sum = 0;
        for(int i= 0; i < intArray.length;i++)
        {
            sum += intArray[i];
        }
        System.out.println("intArray數組的元素和爲:" + sum);
    }
}

Output:
    請輸入第 1個元素的值:
    100
    請輸入第 2個元素的值:
    100
    請輸入第 3個元素的值:
    50
    請輸入第 4個元素的值:
    50
    請輸入第 5個元素的值:
    150
    數組中的元素分別爲:
    100  100  50  50  150  
    intArray數組的元素和爲:450

6.3 案例3:求數組元素的最大值

public class MaxElement {
    public static void main(String[] args) {
        //求數組中的最大值

        //定義整型數組
        //int[] intArray = {34,23,78,56,31,66};
        int[] intArray = new int[6];

        //從鍵盤讀取數組元素值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++ )
        {
            System.out.println("請輸入第 " + (i+1) + "個元素的值:");
            intArray[i] = sc.nextInt();
        }

        //輸出intArray數組中的元素
        System.out.println("intArray 數組中的元素分別爲:");
        for(int i = 0;i < intArray.length;i++)
        {
            System.out.print(intArray[i] + "  ");
        }
        System.out.println();

        int max = intArray[0];
        for(int i = 1;i < intArray.length;i++)
        {
            if(max < intArray[i])
            {
                max = intArray[i];
            }
        }
        System.out.println("intArray 數組元素的最大值爲:" + max);
    }
}


Output:
    請輸入第 1個元素的值:
    34
    請輸入第 2個元素的值:
    23
    請輸入第 3個元素的值:
    78
    請輸入第 4個元素的值:
    56
    請輸入第 5個元素的值:
    31
    請輸入第 6個元素的值:
    66
    intArray 數組中的元素分別爲:
    34  23  78  56  31  66  
    intArray 數組元素的最大值爲:78

7. foreach 循環

foreach 循環又稱爲加強型循環,它能在不使用下標的狀況下遍歷數組。

int[] arr = {1,2,3,4,5,6};
for(int n:arr)
    System.out.print(n + "  ");
//每次把數組中的元素存放到n中,輸出。循環遍歷一遍就終止;
public class Test {
    public static void main(String[] args) {
        //定義整型數組
        //int[] intArray = {34,23,78,56,31,66};
        int[] intArray = new int[6];

        //從鍵盤讀取數組元素值
        Scanner sc = new Scanner(System.in);
        for(int i = 0;i < intArray.length;i++ )
        {
            System.out.println("請輸入第 " + (i+1) + "個元素的值:");
            intArray[i] = sc.nextInt();
        }
        
        //foreach循環
        for(int n:intArray)
        {
            System.out.print(n + "    ");
        }
        System.out.println();
    }
}

8. 數組做爲函數的參數

數組做爲參數傳遞給方法。

調用printfDoubleArray方法打印doubleArray數組:

public static void printfDoubleArray(double[] doubleArray) {
    for (double element: doubleArray ) 
    {
        System.out.println(doubleArray[i] + "   ");
    }
}

//調用printfDoubleArray方法打印doubleArray數組
printfDoubleArray(new double[] {3.14,6.66,8,88,3.59,7.84});

9. 數組做爲函數的返回值

數組能夠做爲函數的返回值。

將list數組中的元素值賦值給result數組:

public atstic int[] reverse(int[] list){
    //聲明 result 數組 並建立 result 數組
    int[] result = new int[list.length];

    for (int i = 0, j = result.length - 1; i < list.length; i++, j--) 
    {
        result[j] = list[i];
    }
    return result;
}

10. 冒泡排序 BubbleSort

public class BubbleSort {
    public static void main(String[] args) {
        //冒泡排序BubbleSort
        int[] intArray = {34,23,78,56,31,66};
        System.out.println("排序前的數組元素分別爲:");
        for(int element:intArray)
        {
            System.out.print(element + "    ");
        }
        System.out.println();
        
        //BubbleSort
        int temp;
        for (int i = 0; i < intArray.length; i++) 
        {
            for (int j = 0; j < intArray.length-i-1; j++)
            {
                if(intArray[j] > intArray[j+1])
                {
                    temp = intArray[j];
                    intArray[j] = intArray[j+1];
                    intArray[j+1] = temp;
                }
            }
        }

        //輸出排序後的數組
        System.out.println("排序後的數組元素分別爲:");
        for(int element:intArray)
        {
            System.out.print(element + "    ");
        }
        System.out.println();
    }
}


OutPut:
    排序前的數組元素分別爲:
    34    23    78    56    31    66    
    排序後的數組元素分別爲:
    23    31    34    56    66    78
相關文章
相關標籤/搜索