JAVA 基礎 / 第二十一課: 數組 /JAVA 如何使用二維數組,java二維數組
2018-03-12
一、初始化二維數組:
這是一個一維數組, 裡面的每一個元素,都是一個基本類型int
int a[] =new int[]{1,2,3,4,5};
這是一個二維數組,裡面的每一個元素,都是一個一維數組
所以二維數組又叫數組的數組:
int b[][] = new int[][]{ {1,2,3}, {4,5,6}, {7,8,9}};
public class HelloWorld { public static void main(String[] args) { //初始化二維數組, int[][] a = new int[2][3]; //有兩個一維數組,每個一維數組的長度是3 a[1][2] = 5; //可以直接存取一維數組,因為已經分配了空間 //只分配了二維數組 int[][] b = new int[2][]; //有兩個一維數組,每個一維數組的長度暫未分配 b[0] =new int[3]; //必須事先分配長度,才可以訪問 b[0][2] = 5; //指定內容的同時,分配空間 int[][] c = new int[][]{ {1,2,4}, {4,5}, {6,7,8,9} }; }}
二、 JAVA.UTIL.ARRAYS類常用方法:
Arrays是針對數組的工具類,可以進行 排序,尋找,複製填充等功能。 大大提高了開發人員的工作效率。
1、數組複製:
與使用System.arraycopy進行數組複製類似的, Arrays提供了一個copyOfRange方法進行數組複製。
不同的是System.arraycopy,需要事先準備好目標數組,並分配長度。 copyOfRange 只需要源數組就就可以了,通過傳回值,就能夠得到目標數組了。
除此之外,需要注意的是 copyOfRange 的第3個參數,表示源數組的結束位置,是取不到的。
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; // copyOfRange(int[] original, int from, int to) // 第一個參數表示源數組 // 第二個參數表示開始位置(取得到) // 第三個參數表示結束位置(取不到) int[] b = Arrays.copyOfRange(a, 0, 3); for (int i = 0; i < b.length; i++) { System.out.print(b[i] + " "); } }}
2、轉換為字串:
如果要列印一個數組的內容,就需要通過for迴圈來挨個遍曆,逐一列印
但是Arrays提供了一個toString()方法,直接把一個數組,轉換為字串,這樣方便觀察數組的內容
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; String content = Arrays.toString(a); System.out.println(content); }}
3、排序:
在前面章節學習了 選擇法排序 和 冒泡法排序,Arrays工具類提供了一個sort方法,只需要一行代碼即可完成排序功能。
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; System.out.println("排序之前 :"); System.out.println(Arrays.toString(a)); Arrays.sort(a); System.out.println("排序之後:"); System.out.println(Arrays.toString(a)); }}
4、搜尋:
查詢元素出現的位置
需要注意的是,使用binarySearch進行尋找之前,必須使用sort進行排序;如果數組中有多個相同的元素,尋找結果是不確定的
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; Arrays.sort(a); System.out.println(Arrays.toString(a)); //使用binarySearch之前,必須先使用sort進行排序 System.out.println("數字 62出現的位置:"+Arrays.binarySearch(a, 62)); }}
5、判斷是否相同:
比較兩個數組的內容是否一樣
第二個數組的最後一個元素是8,和第一個數組不一樣,所以比較結果是false
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[] { 18, 62, 68, 82, 65, 9 }; int b[] = new int[] { 18, 62, 68, 82, 65, 8 }; System.out.println(Arrays.equals(a, b)); }}
6、填充:
import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { int a[] = new int[10]; Arrays.fill(a, 5); System.out.println(Arrays.toString(a)); }}