数组边界
ArraylndexOutOfBoundsException==数组下标越界异常。
数组的合法区间是从0开始的如果越界就会报错:
例:数组:(3) 里面有三个数字
计算机:0-1-2
小结:
- 数组是相同类型数据(数据类型可以为任意类型)的有序集合
- 数组也是对象,数组元素相当于对象的成员变量
- 数组长度是确定的,不可变的。如果越界,则会报:ArraylndexOutOfBounds异常。
数组的使用
数组的基本使用
//数组的基本使用
public class ArrayDem03 {
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
//打印全部的数组元素
for (int i = 0; i < arrays.length; i++) {
//for循环 i从0开始 i小于数组长度(arrays.length)i不断+1
System.out.println(arrays[i]);
}
//计算所有元素的总和
int sum = 0;
for (int i = 0; i < arrays.length; i++) {
sum = sum + arrays[i];
//从第0个下标(第一个数字)开始相加 得出的结果在
赋值给sum(总和)
//也可以写成精简的 sum += arrays[i];
}
System.out.println("sum="+sum);
//查找最大元素
int max = arrays[0];
for (int i = 1; i < arrays.length; i++) {
//for循环 int类型(i=1)-从第一个下标(第二个数字)开始 下标i小于数组长度 i不断+1
if (arrays[i]>max){
//如果数组长度的下标数大于最大数
max = arrays[i];
//把数组的最大数赋值给max(最大数)
}
}
System.out.println("max="+max);
}
}
增强版的for循环使用(for-Each循环),没有下标。
int[] arrays = {1,2,3,4,5};
//增强版的for循环使用(for-Each循环),没有下标。
for (int array : arrays) {
System.out.println(array);
printArray(arrays);
打印数组元素
//打印数组元素
public static void printArray(int[] srrays){
for (int i = 0; i < srrays.length; i++) {
System.out.print(srrays[i]+" ");
}
}
反转数组
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
int[] reverse = reverse(arrays);
printArray(reverse);
}
//反转数组
public static int[] reverse(int[] arrays){
int[] result = new int[arrays.length];
//反转的操作
for (int i = 0,j=result.length-1; i < arrays.length; i++,j–) {
//for循环 int类型 从i=0(从下标0也就是第一个数字开始),J的结果(result)的长度不断减一(length-1),下标i小于数组长度。i不断+1,j的长度不断减一。
result[j] = arrays[i];
//j的长度等于数组的下标。
}
return result;
}