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]]