数组的声明与初始化:
·数据类型 数组名称 [] = new 数据类型 [长度];
·数据类型 [] 数组名称 = new 数据类型 [长度];
数组的静态初始化:
·简化格式: 数据类型 数组名称 [] = { 数据1,数据2,数据3..... };
·完整格式: 数据类型 数组名称 [] = new [] {数据1,数据2,数据3......};
定义数组:
(脚标从零开始到数组长度-1)
int data [] = new int[10]; int [] data1 = new int[12]; int data2 [] = {1,2,3,4,5,6,7}; int [] data3 = new int[] {1,2,3,3,4,4,5,5,6};
输出数组:
·使用for循环输出:
for (int i = 0; i < data2.length; i++) { System.out.println(data2[i]); }
·使用迭代器输出:
for (int i : data3) { System.out.println(i); }
数组的引用传递:
int [] data4; data4 = data; data[1] = 9; for (int i : data4) { System.out.println(i); }
定义一个数组data4,并将data的地址传递给data4.可以发现,此时data和data4是公用一个堆内存,表明了一个堆内存可以被多个占内存所指向。
二维数组:
数组的动态初始化:
·数据类型 数组名称 [][] = new 数据类型 [行个数][列个数]
数组的静态初始化:
·数据类型 数组名称 [][] = new 数据类型 [][] {{数据1,数据2,数据3,......}, {数据1,数据2,数据3,......}, {数据1,数据2,数据3,......}, {数据1,数据2,数据3,......}, ......}
二维数组可以理解为一维的嵌套,输出也就是通过一维的方式进行嵌套输出,比如:
int [][] arr = new int[5][5]; int [][] arr1 = new int[][] {{1,2,3,4,5}, {1,2,3,4,5}}; for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr1[i].length; j++) { System.out.println(arr1[i][j]); } } System.out.println("```````````````````"); for (int[] i : arr1) { for (int i1 : i) { System.out.println(i1); } }
先定位列,再定位行。
数组与方法:
·数组的引用传递:
int data5 [] = new int[] {1,2,3,4,5}; printArr(data5);
public static void printArr(int temp[]) { for (int i : temp) { System.out.println("第" + i + "个:" + i); // 图方便不要学 }
数组的拷贝:
定义一个拷贝的类
public class ArrCopy { public void arrCopy(int[] arr1, int start_arr1, int[] arr2, int start_arr2, int copy_length ) { for (int i = start_arr1,j = start_arr2; i < start_arr1 + copy_length; i++,j++) { arr2[j] = arr1[i]; } for (int num : arr2) { if (num != 0) { System.out.println(num); } } } }
{ int [] arr1 = new int[] {1,2,3,4,5,6,7,8,9,0}; int [] arr2 = new int[100]; ArrCopy copy = new ArrCopy(); copy.arrCopy(arr1,1,arr2,0,4); }
定义两个数组后输出结果arr2:
当然还有系统自带的数组拷贝:
System.arraycopy(arr1,0,arr2,1,4); for (int i : arr2) { System.out.println(i); }
数组对象内存图:
经供参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)