java學習部落格2
阿新 • • 發佈:2020-11-29
七、陣列操作
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.length
為3
。實際上ns
在記憶體中的結構如下:
┌───┬───┬───┬───┐
┌───┐ ┌──>│ 1 │ 2 │ 3 │ 4 │
ns ─────>│░░░│──┘ └───┴───┴───┴───┘
├───┤ ┌───┬───┬───┬───┐
│░░░│─────>│ 5 │ 6 │ 7 │ 8 │
├───┤ └───┴───┴───┴───┘
│░░░│──┐ ┌───┬───┬───┬───┐
└───┘ └──>│ 9 │10 │11 │12 │
└───┴───┴───┴───┘
使用Java標準庫的Arrays.deepToString()
可以遍歷二維陣列