- 数组的定义
静态初始化和动态初始化
/*
静态初始化
数据类型[] 变量名 = {x,x,x,x,...}
*/
int[] arr1 = {1,2,3,4};
/*
动态初始化
数据类型[] 变量名 = new 数据类型[数组长度];
*/
int[] arr2 = new int[5];
arr2[0] = 10;
arr2[1] = 20;
- 两个常见的问题
索引越界
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Array.main(Array.java:17)
空指针
Exception in thread "main" java.lang.NullPointerException
at Array.main(Array.java:19)
- 通过for循环遍历数组
for (int i = 0; i<arr.length; i++){
System.out.println(arr[i]);
}
- 通过for循环和if语句获得数组中的最大值和最小值
int max = arr2[0];
for (int i = 1; i < arr2.length; i++) {
if (max < arr2[i]) {
max = arr2[i];
}
}
System.out.println("最大值为" + max);
int mix = arr2[0];
for (int i = 1; i < arr2.length; i++) {
if (mix > arr2[i]) {
mix = arr2[i];
}
}
System.out.println("最小值为" + mix);
- 数组元素累加
/*数组元素累加*/
int sum = 0;
for (int i = 0; i < arr2.length; i++) {
sum+=arr2[i];
}
System.out.println("数组元素累加为"+sum);
/*数组元素中所有奇数累加*/
int sum01 = 0;
for (int i = 0; i < arr2.length; i++) {
if (arr2[i]%2==1){
sum01+=arr2[i];
}
}
System.out.println("数组元素奇数累加为"+sum01);
/*数组元素中所有偶数累加*/
int sum02 = 0;
for (int i = 0; i < arr2.length; i++) {
if (arr2[i]%2!=1){
sum02+=arr2[i];
}
}
System.out.println("数组元素偶数累加为"+sum02);
- 判断两个数组是否相等
/*判断两个数组是否相等*/
boolean same = false;
if (arr1.length == arr2.length){
for (int i = 0; i < arr2.length; i++) {
if (arr1[i] == arr2[1]){
same = true;
}
}
}
System.out.println("两个数组"+(same?"相等":"不相等"));
- 查找数组中某个值的索引
/*查找数组中某个值的索引*/
int a = 3;
for (int i = 0; i < arr2.length; i++) {
if (a==arr2[i]){
System.out.println(a+"所在的索引为"+i);
break;
}
}
- 数组元素反转
/*数组元素反转*/
for (int start = 0,end = arr1.length-1;start<=end;start++,end--){
int temp = arr1[start];
arr1[start] = arr1[end];
arr1[end] = temp;
}