1. 程式人生 > 實用技巧 >java學習部落格2

java學習部落格2

七、陣列操作

1、遍歷陣列

我們在Java程式基礎裡介紹了陣列這種資料型別。有了陣列,我們還需要來操作它。而陣列最常見的一個操作就是遍歷。

通過for迴圈就可以遍歷陣列。因為陣列的每個元素都可以通過索引來訪問,因此,使用標準的for迴圈可以完成一個數組的遍歷:

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int i=0; i<ns.length; i++) {
            int n = ns[i];
            System.out.println(n);
        }
    }
}

為了實現for迴圈遍歷,初始條件為i=0,因為索引總是從0開始,繼續迴圈的條件為i<ns.length,因為當i=ns.length時,i已經超出了索引範圍(索引範圍是0 ~ ns.length-1),每次迴圈後,i++

第二種方式是使用for each迴圈,直接迭代陣列的每個元素:

public class Main {
    public static void main(String[] args) {
        int[] ns = { 1, 4, 9, 16, 25 };
        for (int n : ns) {
            System.out.println(n);
        }
    }
}

使用for each迴圈列印也很麻煩。幸好Java標準庫提供了Arrays.toString(),可以快速列印陣列內容:

練習

請按倒序遍歷陣列並列印每個元素:

        int [] ns = {1,2,4,5,6,7};

        for (int n = (ns.length-1);n>=0;n-- ) {

            System.out.print(ns[n] + ", ");
        }

小結

遍歷陣列可以使用for迴圈,for迴圈可以訪問陣列索引,for each迴圈直接迭代每個陣列元素,但無法獲取索引;

使用Arrays.toString()

可以快速獲取陣列內容。

2、陣列排序

對陣列進行排序是程式中非常基本的需求。常用的排序演算法有氣泡排序、插入排序和快速排序等。

我們來看一下如何使用氣泡排序演算法對一個整型陣列從小到大進行排序:

實際上,Java的標準庫已經內建了排序功能,我們只需要呼叫JDK提供的Arrays.sort()就可以排序

練習

請思考如何實現對陣列進行降序排序:

小結

常用的排序演算法有氣泡排序、插入排序和快速排序等;

氣泡排序使用兩層for迴圈實現排序;

交換兩個變數的值需要藉助一個臨時變數。

可以直接使用Java標準庫提供的Arrays.sort()進行排序;

對陣列排序會直接修改陣列本身。

3、 二維陣列

因為ns包含3個數組,因此,ns.length3。實際上ns在記憶體中的結構如下:

                    ┌───┬───┬───┬───┐
         ┌───┐  ┌──>│ 1 │ 2 │ 3 │ 4 │
ns ─────>│░░░│──┘   └───┴───┴───┴───┘
         ├───┤      ┌───┬───┬───┬───┐
         │░░░│─────>│ 5 │ 6 │ 7 │ 8 │
         ├───┤      └───┴───┴───┴───┘
         │░░░│──┐   ┌───┬───┬───┬───┐
         └───┘  └──>│ 9 │10 │11 │12 │
                    └───┴───┴───┴───┘

使用Java標準庫的Arrays.deepToString()可以遍歷二維陣列