Java数组学习
Java数组内容的基本知识
静态数组的初始化
int代表的是类型 arr 是数组的名字 {} 里面是数组的内容
int[] arr = {1, 2, 3, 4, 5};
可以通过索引的方式进行获取
// 获取数组的第一个元素
int number = arr[0];
System.out.println(number
// 通过索引获取数组内元素
System.out.println(arr[1]);
如果数组内的第一个元素被覆盖,那么打印出来的结果也就是覆盖后的结果
// 一旦被覆盖,最开始的元素就被替换掉了
arr[0]=151;
System.out.println(arr[0]); // 151
这里也可以通过for循环的方式进行获取数组里面的内容,其实以上的操作和js没有差太多,只是初始化的时候不一样罢了
通过fori可以快速创建for循环
// 定义数组
int[] arr = {1, 2, 3, 4, 5, 6};
// 获取数组内所有元素
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 快速生成for循环 fori
}
案例1
根据以下数组,找出是3的倍数的数,分别是哪几个,并且有几个数
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 初始化记录次数
int number = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 3 == 0) {
// 如果条件满足一次,那么number就递增一次,打印一遍数组内当前满足的元素
number++;
System.out.print(arr[i]);
}
}
// 打印一个空格
System.out.println();
// 打印次数
System.out.println(number);
案例2
根据以下数组,找出数组内最大的元素
int[] arr = {33, 5, 22, 44, 55};
这里说下,为什么for循环里面的i是从1开始,而不是从0开始,因为max默认就是数组内的第一个数,就没有必要自己和自己再次比较。之前从数组内第二个元素开始比较就好了,这里为什么不直接写0,然后依次进行比较,因为如果数组内所有的元素都是负数,那么就是你自己定义的max最大了,就没有真正去比出数组内最大的元素。
// 默认数组内第一个元素是最大的
// max这里初始化的值是数组内第一个元素,其实就是拿到第一个元素进行逐个进行比较
int max = arr[0];
// 循环结束后取出最大值
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
System.out.println(max);
动态数组初始化
格式: 数据类型[] 数组名 = new 数据类型[数组的长度]
// 动态初始化
String[] arr = new String[5];
// 添加学生
arr[0] = "文字";
// 添加学生2
arr[1] = "小赵";
System.out.println(arr[1]); // 小赵
System.out.println(arr[2]); // null
// 打印出数组内所有内容
System.out.println(Arrays.toString(arr)); // [文字, 小赵, null, null, null]
int[] arrs = new int[5];
System.out.println(arrs[1]); // 0
System.out.println(arrs[1]);// 0
System.out.println(arrs[1]);// 0
// arrs[6] = 23;
// 这里的长度最长就是5 如果写6 就会抛出异常 ArrayIndexOutOfBoundsException 数组角标出现异常