1.4 数组的使用
1.4.1 数组中元素访问
数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,该编号称为数组的下标,数组可以通过下标访问其任意位置的元素。
比如:
public class Main { public static void main(String[] args) { int[] array = new int[]{10, 20, 30, 40, 50}; System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println(array[3]); System.out.println(array[4]); } }
🍤 运行结果:
也可以通过 [] 对数组中的元素进行修改:
public class Main { public static void main(String[] args) { int[] array = new int[]{10, 20, 30, 40, 50}; array[0]=100; System.out.println(array[0]); } }
🍤 运行结果:
注:
- 数组是一段连续的内存空间,因此支持随机访问,即通过下标访问快速访问数组中任意位置的元素
- 下标从0开始,介于 [0, N)之间不包含N,N为元素个数,不能越界,否则会报出下标越界异常
int[] array = {1, 2, 3}; System.out.println(array[3]); // 数组中只有3个元素,下标一次为:0 1 2,array[3]下标越界
🍤运行结果:
1.4.2 遍历数组
所谓“遍历”是指将数组中的所有元素都访问一遍,访问是指对数组中的元素进行某种操作,比如:打印。
//打印数组中的每个元素 int[]array = new int[]{10, 20, 30, 40, 50}; System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); System.out.println(array[3]); System.out.println(array[4])
上述代码可以起到对数组中元素遍历的目的,但问题是:
- 如果数组中增加了一个元素,就需要增加一条打印语句
- 如果输入中有100个元素,就需要写100个打印语句
- 如果现在要把打印修改为给数组中每个元素加1,修改起来非常麻烦
通过观察代码可以发现,对数组中每个元素的操作都是相同的,则可以使用循环来进行打印。
public class Main { public static void main(String[] args) { int[] array = new int[]{10, 20, 30, 40, 50}; for (int i = 0; i < 5; i++) { System.out.println(array[i]); } } }
🍤 运行结果:
上述过程中,我们已知数组的长度,如果数组的长度未知,该如何获取到数组的长度呢?
在数组中可以通过 数组对象 .length 来获取数组的长度
public class Main { public static void main(String[] args) { int[]array = new int[]{10, 20, 30, 40, 50}; for(int i = 0; i < array.length; i++){ System.out.println(array[i]); } System.out.println(array.length); } }
🍤 运行结果:
也可以使用 for-each 遍历数组:
int[]array = new int[]{10, 20, 30, 40, 50}; for(int i:array){ System.out.println(i); }
🍤 运行结果: