Day24.1.数组入门
1.定义
-
数组是相同数据的有序集合
-
每个数据为一个数组元素,每个数组元素可以通过一个下标来访问他们
2.数组的声明创建
-
声明:
//方法一
dataType[] arrayRefVar; //建议
//int[] a;
//方法二
dataType arrayRefVar[];//C/C++中的写法,java也可以
//int a[];
-
创建:Java语言使用new操作符来创建数组
dataType[] arrayRefVar=new dataType[arraySize];
//int[] a=new int[5];
//上面已经声明了a[],所以只需赋值大小
a=new int[10];public class Test {
public static void main(String[] args){
int[] a=new int[5];
int sum=0;
for (int i = 0; i < 5; i++) {
a[i]=i;
}
for (int j = 0; j < a.length; j++) {
sum+=a[j];
}
System.out.println(sum);
}
}
3.数组的特点
-
长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
-
其元素必须是相同类型,不允许出现混合类型。
-
数组中的元素可以是任何数据类型,包括基本类型和引用类型
-
数组变量属于引用类型,数组可以看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象。Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
4.数组初始化
-
静态初始化
int[] a={0,1,2,3,4};
静态初始化,数组的大小是确定的,且无法改变
-
动态初始化
int[] b=new int[10];
b[0]=10;动态初始化包含默认初始化,即其他未赋值的数组元素会默认为0,String为null
-
默认初始化
未赋值的数组元素会默认为0,String为null
5.数组边界
-
数组下标合法区间[0,length-1],若越界会报错
ArrayIndexOutOfBoundsException:数组下标越界
6.数组的使用
基本例题
public class Demo01 {
public static void main(String[] args) {
int[] a={0,1,2,3,4,5};//静态初始化数组元素
//遍历输出数组元素
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
//输出所有元素的和
int sum=0;
for(int j=0;j<a.length;j++){
sum+=a[j];
}
System.out.println(sum);
//找出数组元素中的最大值
int max=a[0];
for (int i=1;i<a.length;i++){
if(a[i]>max){
max=a[i];
}
}
System.out.println(max);
}
}
1.For-Each循环
public class Demo02 {
public static void main(String[] args) {
int[] a={1,2,3,4,5};
//省去了下标,适用遍历输出数组元素
for (int i : a) {
System.out.println(i);
}
}
}
是增强型For循环
2.数组做方法入参
public class Demo02 {
public static void main(String[] args) {
int[] a={1,2,3,4,5};
//省去了下标,适用遍历输出数组元素
for (int i : a) {
System.out.println(i);
}
printArray(a);
System.out.println();
printArray(reverse(a));
}
//打印数组元素
public static void printArray(int[] arrays){
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");//将arrays数组的第一个赋值给result的最后一个
}
}
}
3.数组做返回值
public class Demo02 {
public static void main(String[] args) {
int[] a={1,2,3,4,5};
//省去了下标,适用遍历输出数组元素
for (int i : a) {
System.out.println(i);
}
printArray(a);
System.out.println();
printArray(reverse(a));
}
//将数组反转
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];
for(int i=0,j= result.length-1;i<result.length;i++,j--){
result[j]=arrays[i];
}
return result;
}
//打印数组元素
public static void printArray(int[] arrays){
for(int i=0;i<arrays.length;i++){
System.out.print(arrays[i]+" ");//将arrays数组的第一个赋值给result的最后一个
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」