数组
数组的两种初始化方式:
动态初始化:由我们来设置数组的元素的个数,系统决定数组的初始值
数组元素类型[] 数组名=new 数组元素类型[length];
举例:int[] ages = new int[9];
静态初始化:由系统决数组的元素个数,由我们来决定数组的初始值
数组元素类型[] 数组名=new 数组元素类型[] {元素的值1,……};
举例:int[] nums = new int[]{1,3,5,7,9};
数组的简写:
原始数组:int[] nums = new int[]{1,3,5,7,9};
简化后:int[] nums={1,3,5,7,9};
声明数组:int[] nums;
初始化:nums = new int[] {1,3,5,7,9};
注意:简写的初始化方式必须在声明后立即初始化
两个新的关键字:
Null:表示没有引用任何空间
new:表示在堆中开辟新空间
Length :是属性,不是方法,表示数组中int类型中的个数,不是关键字
索引:从0开始,一一对应数组元素的值,总个数为数组名.length-1
索引范围:【0,数组名.length-1】
注意:若堆中的空间未被引用,则等待垃圾回收器回收
简写必须在声明后立即初始化后
常见的异常:
NullPointerException:空指针异常/引用异常
ArrayIndexOutOfBoundsException:数组索引越界异常
数组的基本操作:
获取元素:元素类型变量=数组名[索引index];
设置元素:数组名[索引index]=值;
遍历元素:遍历即迭代,将数组的元素全部输出,建议使用for循环
举例:
class H4
{
publicstatic void main(String[] args)
{
int[]ages = new int[9]; //定义动态数组
System.out.println("HelloWorld!");
System.out.println(ages.length); //输出数组的元素的个数
int[]nums = new int[] {1,3,5,7,9}; //定义静态数组
System.out.println("数组的值"+ nums[3]); //输出数组的第四个数的值
nums[3]=199; //更改元素的值使得第四个元素由7改为199
System.out.println("数组改变后的值"+ nums[3]);
for(int index = 0; index < nums.length;index ++ ) //遍历所有的元素
{ //新建一个int型的index数据,使得其值小于数组的行数,并自加一
System.out.println(nums[index]); //打印所有的元素的值
}
nums= null;
System.out.println(nums[3]);
}
}
比较数组的元素值的大小:
class H3
{ //要求:求出一组数组中元素的最大值/最小值
staticint getMax(int[] nums) //2 新建一个方法命名为getMax,参数为int[] nums,即将数组的元素传递到此处
{ int max = nums[0]; //4假设第一个元素是最大值
for(int index = 0;index < nums.length ;index++ ) //3 index:代表
{ //nums.length:代表数组元素的个数
if(nums[index] > max) //5 如果下一个数组的元素大于上一个最大值
{
max= nums[index]; //6 就把就把下一个数组的元素赋给最大值
}
}
returnmax; //7返回最大值
}
//最小值的输出
staticint getMin(int[] nums)
{ int min = nums[0];
for(int index = 0;index<nums.length ;index++ )
{
if(nums[index]<min)
{
min= nums[index];
}
}
returnmin;
}
publicstatic void main(String[] args)
{
intnums[] =new int[]{11,12,13,-14,15,16,38,33,49,55,32}; //1 新建一个静态初始化数组,命名为nums,并定义数组元素
intsum = H3.getMax(nums); //8 将参数返回值赋给sum
System.out.println(sum); //9 输出最大的值
System.out.println(H3.getMax(nums)); //结果和上一步相同
System.out.println(H3.getMin(nums)); //输出最小的值
//按格式打印数组元素
Stringarr[] ={"A","B","C","D","E"};
H3.pointArray(arr);
}
staticvoid pointArray(String[] arr)
{
Stringret = "[";
for(int index = 0;index <arr.length ;index++ )
{
ret= ret + arr[index]; //如果当前index不是最后一个索引,则多拼接一个“,”
if(index !=arr.length-1)
{
ret= ret +", ";
}
}
ret= ret + "]";
System.out.println(ret);
}
}