数组的初始化:
int[] arr = new int[3];
System.out.println(arr[3]);//运行时会报一个数组角标越界异常(ArrayIndexOutOfBoundsException)
int[] arr = new int[3];
arr = null;
System.out.println(arr[1];//运行时会报空指针异常(NullpointerException)
数组的操作:
获取数组中的元素,通常会用到遍历;
数组中有一个属性可以直接获取到数组元素的个数,数组名称.length;
最值获取:
public class T1 {
/*** 获取数组中的最大值和最小值:
思路分析:
1. 获取最值需要进行比较,每一次比较都会有一个较大的值,因为该值不确定。通过一个变量进行临时存储。
2. 让数组中的每一个元素都和这个变量中的值进行比较,如果大于变量中的值,就用该变量记录较大值。
3. 当所有的元素都比较完成时,那么该变量中存储的就是数组中的最大值了。
步骤:
1.定义一个变量进行临时存储,并初始化为数组中的任意一个元素值:int max= arr[0];
2.定义一个for循环遍历数组中的所有元素:for(int x =1;x < 7;x ++){};
3.条件判断,记录较大值:if(arr[x] > max) max = arr[x];
定义一个功能,实现以上步骤,以便于复用;
1.明确结果类型,数组中的最大值:int;
2.明确有内容参与:int[] arr;
*/
public static void main(String[] args) {
int[] arr = new int[]{5,1,3,7,9,2,8};
int Max = getmax(arr);
int Max1 = getmax1(arr);
int Min = getmin(arr);
System.out.println("Max =" + Max);
System.out.println("Max1 =" + Max1);
System.out.println("Min =" + Min);
}
public static int getmax(int[] arr)
{
int max = arr[0];
for (int x = 1;x < arr.length;x++ ) {
if (arr[x] > max){
max = arr[x];//交换元素
}
}
return max;
}
/*
获取最大值的另一种方式:可不可以将max初始化为0?如果使用第一种方式,是不可以的,因为数组元素有可能出现的都是负数,
这样最大就变成0了,然而把max看做数组元素的角标,就可以了;
*/
public static int getmax1(int[] arr){
int max = 0;
for (int x = 1;x < arr.length;x++ ) {
if (arr[x] > arr[max]){
max = x;//交换下标
}
}
return arr[max];
}
public static int getmin(int[] arr) {
int min = 0;
for (int x = 1;x < arr.length;x ++ ){
if (arr[x] < arr[min]) {
min = x;
}
}
return arr[min];
}
}