JavaSE第五章、数组
JavaSE第五章、数组
一、数组
1.数组的定义
(1)动态初始化
第一种: int[] a=new int[5];
第二种: int a[]=new int[5];
第三种: int a[];或int[] a; //先定义
a=new int[5]; //再初始化
(2)静态初始化
int a[]={1,2,3,4,5};
注意事项:
-
数组中的元素可以是任何数据类型,但不能混用。
-
数组创建后,若没有赋值,则有默认值:
int\short\byte\long为0;
float\double为0.0;
char为\u0000;
boolean为false;
String为null。
-
⚠️数组的下标从0开始。
-
数组是引用类型,数组型数据是对象(object)。
2.数组赋值机制
-
基本数据类型赋值方式为值传递。
-
数组在默认情况下是引用传递,赋的是地址。
3.数组的扩容
Scanner myScanner = new Scanner(System.in);
int[] arr={1,2,3};
do{
int[] arrNew = new int[arr.length+1];
for(int i=0;i<arr.length;i++)
{
arrNew[i]=arr[i];
}
System.out.println("请输入添加的元素");
int addNum=myScanner.nextInt();
arrNew[arrNew.length-1]=addNum;
arr=arrNew;
System.out.println("是否继续添加?(y/n)");
char key=myScanner.next().charAt(0);
if(key=='n') break;
}while(true);
for(int i=0;i<(arr.length);i++)
{
System.out.print(arr[i]+" ");
}
二、二维数组
1.二维数组的定义
//静态初始化
int[][] arr={
{0,0,0},
{0,0,1},
{1,2,0},
}
//动态初始化一
int arr[][];
arr = new int [5][5];
//动态初始化二
int a[][] = new int [5][5];
//动态初始化三——列数不确定
/*Java二维数组允许每个一维数组的个数不同,即列数不确定。*/
int[][] arr = new int[3][];
for(int i=0;i<arr.length;i++){
//给每个一维数组开空间。否则arr[i]为null。
arr[i]=new int[i+1];
//给每个一维数组的每个元素赋值
for(int j=0;j<arr[i].length;j++){
arr[i][j]=i+1;
}
}
注意事项:
- 二维数组的每个元素是一维数组。
- 访问第(i+1)个一维数组的第(j+1)个值:arr [i][j]。
- 二维数组的声明方式还可以为:int[] y[]
2.杨辉三角
int[][] arr=new int[10][];
for(int i=0;i<arr.length;i++){
arr[i]=new int[i+1];
for(int j=0;j<arr[i].length;j++) {
if(i>1 && j!=0 && j!=arr[i].length-1)
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
else
arr[i][j]=1;
}
}
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++)
System.out.print(arr[i][j]+" ");
System.out.println();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?