数组概念
- 数组是一种数据结构,特点是:连续性存储,内部元素类型相同
- 数组索引从0开始,数组最大索引为数组总长度 -1
- 尝试使用 0 ~ 数组长度-1 范围外的数组索引元素将会引发java.lang.ArrayIndexOutOfBoundsException
- 数组一旦声明,长度将不可改变,如果想要改变长度只能重新开辟数组,将旧的数组赋值给新的数组
- 基本类型数组元素有初始值
- 引用类型数组元素初始值为null
- 调用值为null的元素的方法和属性将会抛出
java.lang.NullPointerException
- foreach 遍历数组只能取值不能赋值,并且只能取出所有值,而且不会越界
数组使用 | 数组的三种初始化方式
void arrayTest1(){
//数组的动态初始化
//将数组的定义与 为数组元素赋值分开进行
int[] numbers = new int[2];
int[0] = 0;
int[1] = 0;
//数组的静态初始化
//定义数组的同时将数组元素填充
//创建数组并赋值
int[] numberArray1 = {1,2,3};
//数组的默认初始化
//创建指定长度的数组不赋值
int[] numberArray2 = new int[3];
System.out.println(numbers2.length);
//第三种数组赋值的方式
int[] numberArray3 = new int[3]{1,2,3};
//对数组指定索引位置元素赋值
numbers2[2] = 9;
//打印指定索引位置的元素
System.out.println(numbers2[2]); //9
}
基本类型数组和引用类型数组
基本类型数组
void arrayTest2(){
//创建一个长度为3的数组
double[] doubleArray = new double[3];
//循环给数组赋值
for (int i =0;i<doubleArray .length;i++){
doubleArray [i] = i;
}
//访问不存在的元素将会抛出 java.lang.ArrayIndexOutOfBoundsException
//System.out.println(doubleArray[-1]);
//循环输出数组
//0.0
//1.0
//2.0
for (int i =0;i<doubleNumberArray.length;i++){
System.out.println(doubleNumberArray[i]);
}
}
引用类型数组
void arrayTest3(){
//创建一个长度为3的数组
String[] stringArray = new String[3];
//循环给数组赋值
for (int i = 0; i < stringArray.length; i++) {
stringArray[i] = "元素" + i;
}
//循环输出数组
//元素0
//元素1
//元素2
for (int i = 0; i < stringArray.length; i++) {
System.out.println(stringArray[i]);
}
//创建一个长度为5的String类型的数组
String[] stringArray2 = new String[5];
//引用类型数组中的元素的默认值为null
System.out.println(stringArray2[3]);
//调用值为null的对象的方法会抛出 java.lang.NullPointerException
//System.out.println(stringArray2[3].hashCode());
stringArray2 = stringArray;
//foreach 遍历数组 jdk5.0+版本才可以使用此语法糖
for (String s:stringArray2
) {
System.out.println(s);
}
}
数组应用
demo - 求数组中的最大值
public static int getMax(int[] intArray){
int maxValue = intArray[0];
for (int i = 0;i<intArray.length;i++){
if (intArray[i]>maxValue){
maxValue = intArray[i];
}
}
return maxValue;
}
网友评论