Java讲座-阵列(台湾版)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在JDK6中,也為Arrays類別新增了陣列複 製的copyOf()方法
進階的陣列操作
Arrays類別提供的方法
名 sort() binarySearch() 稱 說 明 幫助您對指定的陣列排序,所使用的是快速排序法 讓您對已排序的陣列進行二元搜尋,如果找到指定的值就 傳回該值所在的索引,否則就傳回負值 當您配置一個陣列之後,會依資料型態來給定預設值,例 如整數陣列就初始為 0,您可以使用Arrays.fill()方法來 將所有的元素設定為指定的值
在J2SE 5.0之後
int[] arr = {1, 2, 3, 4, 5}; for(int element : arr) System.out.println(element);
進階的陣列操作
foreach與陣列
加強的for迴圈(Enhanced for Loop)
for(type element : array) { System.out.println(element).... }
一維陣列物件
資料型態 byte short int long float double char boolean 0 0 0 0L 0.0f 0.0d \u0000 false 初始值
一維陣列、二維陣列
AverageInput.java
一維陣列物件
可以使用動態的方式來宣告陣列長度,而不用在 程式中事先決定陣列大小
int length = scanner.nextInt(); float[] score = new float[length]; // 動態配置長度 for(int i = 0; i < score.length; i++) { System.out.print("輸入分數:"); float input = scanner.nextFloat(); score[i] = input; }
陣列
大綱
一維陣列、二維陣列 進階陣列概念
一維陣列、二維陣列
一維陣列
宣告一個陣列並初始陣列內容
int[] score={90,85,55,94,77}; for(int i=0;i<score.length;i++){ System.out.println("score["+i+"]="+score[i]); }
進階的陣列操作
陣列複製
使用System類別所提供的arraycopy()方法
int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = new int[5]; System.arraycopy(arr1, 0, arr2, 0, arr1.length); for(int i = 0; i < arr2.length; i++) System.out.print(arr2[i] + " "); System.out.println();
fill()
equals()
比較兩個陣列中的元素值是否全部相等,如果是將傳回 true,否則傳回 false
進階的陣列操作
陣列比較
不可用'=='比較兩個陣列的元素值是否相等 deepEquals()與 deepToString()
int[][] arr1 = {{1, 2, 3}, {4, 5, 6},{7, 8, 9}}; int[][] arr2 = {{1, 2, 3},{4, 5, 6},{7, 8, 9}}; int[][] arr3 = {{0, 1, 3},{4, 6, 4},{7, 8, 9}}; System.out.println("arr1 內容等於 arr2 ? " + Arrays.deepEquals(arr1, arr2)); System.out.println("arr1 內容等於 arr3 ? " + Arrays.deepEquals(arr1, arr3)); System.out.println("arr1 deepToString()\n\t" + Arrays.deepToString(arr1));
以物件的方式來配置一個二維陣列物件
int[][] arr = new int[2][3];
進階的陣列操作
進階的陣列操作
一維陣列的參考名稱之宣告
int[] arr = null;
將同一個物件指定給兩個參考名稱
int[] arr1 = {1, 2, 3, 4, 5}; int[] tmp1 = arr1; int[] tmp2 = arr1; System.out.print("透過tmp1取出陣列值:"); for(int i = 0; i < tmp1.length; i++) System.out.print(tmp1[i] + " ");
指定的索引值不可超出陣列範圍 會發生 ArrayIndexOutOfBoundsException
length為陣列物件的屬性成當您宣告一個陣列時,其實就是在配置一 個陣列物件 一個完整的陣列宣告方式如下
int[] arr = new int[10];
一維陣列、二維陣列
進階的陣列操作
foreach與陣列
加強的for迴圈(Enhanced for Loop)
for(type element : array) { System.out.println(element).... }
J2SE 5.0之前
int[] arr = {1, 2, 3, 4, 5}; for(int i = 0; i < arr.length; i++) System.out.println(arr[i]);
J2SE 5.0之前
int[] arr = {1, 2, 3, 4, 5}; for(int i = 0; i < arr.length; i++) System.out.println(arr[i]);
在J2SE 5.0之後
int[] arr = {1, 2, 3, 4, 5}; for(int element : arr) System.out.println(element);
一維陣列、二維陣列
二維陣列物件
二維陣列使用「名稱」與「兩個索引」來 指定存取陣列中的元素
int[][] arr = {{1, 2, 3},{4, 5, 6}}; for(int i = 0; i < arr.length; i++) { for(int j = 0; j < arr[0].length; j++) System.out.print(arr[i][j] + " "); System.out.println(); } }