接着我上篇文章所说的创建数组的方式 这篇文章就说说通常我们如何使用数组
输出数组的元素:
// 注意:这里的4指的是可以装多少个元素,而不是你数组里面包含了4这个值 int[] arr = new int[4]; System.out.println("输出arr的地址:" + arr.toString()); for (int a : arr) { System.out.println("输出数组元素的值:" + a); } 输出结果: 输出arr的地址:[I@49097b5d 输出数组元素的值:0 输出数组元素的值:0 输出数组元素的值:0 输出数组元素的值:0**结论:**如果你想输出数组的元素,你只能通过遍历的方式去输出
往数组中添加值:
int[] arr = new int[4]; for (int a : arr) { System.out.println("添加前:" + a); } arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; for (int a : arr) { System.out.println("添加后:" + a); } 输出结果: 添加前:0 添加前:0 添加前:0 添加前:0 添加后:1 添加后:2 添加后:3 添加后:4**结论:**往数组中添加元素,只能使用下标指定的方式(因为集合中才有add()方法,数组中没有)
什么情况下会出现下标越界呢?
int[] arr = new int[4]; for (int a : arr) { System.out.println("添加前:" + a); } arr[4] = 5; for (int a : arr) { System.out.println("添加后:" + a); }这时候的结果:
为什么会出现异常呢? 因为我们最初定的数组容量是4,也就是数组最多只能装4个元素 但是有一点很重要,下标是从0开始的,也就是这个下标的最大数字只能为3 所以,当我们定义下标为4的时候,就会出现下标越界的异常
趣味小问题:为什么异常的日志和正常的输出日志是穿插的而不是按顺序输出呢? 因为输出分两种输出:
一种是正常输出也就是标准输出(不带颜色的)一种是异常输出也就是标准出错(红色的日志) 而标准输出通常是带缓存的, 所以会按照我们写的顺序输出 而标准出错默认是不需要缓存直接输出,所以才会造成了这种视觉位置的不确定性友情提示: 这篇文章重在理解, 理解数组及下标的含义
全部文字都是自己纯手敲 关注小凡,欢迎大家与我一起讨论技术,一起学习