关于数组
学习Java也有一段时间了,发现自己对数组掌握得不是很好,在运用数组时在一些简单的问题上老是会出错,本文主要对数组一些基本的知识点进行一些整理,可以让自己回顾一下数组的内容,加深印象,如有不对或需要补充的地方,烦请各位大佬指出,手动抱拳。
数组定义
- 数组是相同数据类型的多个数据的容器
- 特点
以线性顺序排列
数组有长度,用length获取数组长度
数组下标从0开始,以length-1结束
数组格式
- 常用格式:
//创建数组,同时赋值
数据类型[] 数组名 = { };
//指定长度n,不赋值
数据类型[] 数组名 = new 数据类型[n];
- 不常用格式
//创建但不初始化
数据类型[] 数组名;
//创建并指定内容
数据类型[] 数组名 = new 数据类型[]{};
数组运用
- 通过下标操作数组
//赋值
数组名[下标] = 值;
//从数组某个下标取值
数组名[下标];
-
获取数组长度
数组名.length -
数组遍历
for(int i = 0;i<数组名.length;i++){
System.out.print(数组名[i])
}
数组下标越界及动态扩容
- 长度为n的数组,当输出n时就会越界,因为数组下标是从0开始的,一旦超出边界,后续代码就不再执行。
- 动态扩容
我们可以定义一个新的空间较大的数组,将原来的数组值赋给这个新数组,并将这个新数组名改为原来的数组。
代码:
Object[] element = new Object[3]; //长度为3的数组
Object[] newelement = new Object[element.length+1]; //定义一个更长的数组
for(int i = 0;i<element.length;i++) {
newelement[i] = element[i];
}
element = newelement;
注意:数组未赋值时,无法输出内容。
寻找最大/最小值
- 最大值:
- 先定义一个变量n,用来存储这个最大值
- 与数组中每一个数据进行比较,如果比n大,则赋值给n,如果比n小,则n不变
int n = 0;
for(int i= 0;i<nums.length;i++){
n = n > nums[i] ? n:nums[i];
}
System.out.println(n);
- 最小值:
- 先定义一个变量n,用来存储这个最小值
- 与数组中每一个数据进行比较,如果比n小,则赋值给n,如果比n大,则n不变
int n = 0;
for(int i= 0;i<nums.length;i++){
n = n < nums[i] ? n:nums[i];
}
System.out.println(n);
二维数组
- 格式
int[][] 数组名称 = new 数据类型[][];