Java基礎學習(七):數組的創建、訪問、遍歷和輸出
一、數組的創建
數組是由索引和元素構成,數組分爲一維數組和多維數組。
- 數組的創建:
[數據類型] 數組名[];
或[數據類型][] 數組名;
聲明後的數組內容如果爲空,則無法訪問,必須初始化才能訪問。 - 有兩種初始化方法:1、利用new內存空間,可以在後面追加賦值,也可以命名空間 2、直接賦值。
- 數組賦值是用大括號和英文逗號組成。不同於C語言。
- 示例:
public class first {
public static void main(String[] args) {
char[] arr1;//因爲沒分配內存
char arr2[] = new char[] {'h','a','h','a'};
int[] arr3 = {1,2,3};
String strarr1[] = new String[] {"haha","xixi","lala"};
String strarr2[] = new String[3];
System.out.println(arr2);
System.out.println(arr3.length);
}
}
二、數組的訪問
- Java中數組通過索引值來進行訪問內存元素,索引默認從0開始線性遞增,最大爲 數組長度-1。
- 示例:
public class first {
public static void main(String[] args) {
char arr1[] = new char[] {'h','a','h','a'};
System.out.println(arr1[2]);
}
}
//-------------輸出-----------
h
三、多維數組
- 數組的每一個元素都是一個數組,而且可以子數組中包含一個數組。
- 二維數組一般爲表格、CSV文件等,三維數組爲立方矩陣。
- 示例:
public class first {
public static void main(String[] args) {
int arr1[][] = new int[][] {{1,0,0,0,0},{1,1,0,0,0},{0,0,1,0,0},{0,0,0,1,0},{0,0,0,0,1}};//[行][列]
for(int i = 0 ; i < 5 ; i++) {
for(int j = 0 ; j < 5 ; j++) {
System.out.print(arr1[i][j]);
}
System.out.println();
}
}
}
//----------輸出-----------
10000
11000
00100
00010
00001
四、數組遍歷與輸出
- 利用之前學的
foreach
,來遍歷數組中的每個元素。 - 示例:
public class first {
public static void main(String[] args) {
int arr1[][] = new int[][] {{1,0,0,0,0},{1,1,0,0,0},{0,0,1,0,0},{0,0,0,1,0},{0,0,0,0,1}};//[行][列]
int arr2[] = {1,2,3,4,5,6,7,8,9,0};
//方法一:遍歷多維數組
for(int i = 0 ; i < 5 ; i++) {
for(int j = 0 ; j < 5 ; j++) {
System.out.print(arr1[i][j]);
}
System.out.println();
}
//方法二:遍歷一維數組
for(int i : arr2) {
System.out.print(i);
}
}
}
//----------輸出-----------
10000
11000
00100
00010
00001
1234567890
- Arrays類中的toString靜態方法與多維數組的deepToString方法,引用了Arrays類
import java.util.Arrays;
,可以直接把每個元素打印出來,不必遍歷。 - 示例:
import java.util.Arrays;
public class first {
public static void main(String[] args) {
int arr1[][] = new int[][] {{1,0,0,0,0},{1,1,0,0,0},{0,0,1,0,0},{0,0,0,1,0},{0,0,0,0,1}};//[行][列]
int arr2[] = {1,2,3,4,5,6,7,8,9,0};
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.deepToString(arr1));
}
}
//-------------輸出----------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[[1, 0, 0, 0, 0], [1, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]]