数组

本文详细介绍了数组的概念,包括数组的定义、初始化、遍历方法以及一维和二维数组的使用技巧。同时,文章还提供了数组拷贝的多种实现方式,如for语句、Arrays.copyOf()、System.arraycopy()和clone()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是数组?

数组只是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本数据类型数据序列。

数组的定义

定义一个整型数组
(1)int[] a={1,2,3};//定义数组a里面含有1,2,3三个元素。
(2)int[] a=new int[3]//定义一个可以存放3个元素的内存空间
(2)int[] a=new int[]{1,2,3}
注:数组元素的下标从0开始,最大下标值为数组的大小减一。可通过数组名.length(a.length)来获取数组长度,如果下标超出范围,则会出现“数组访问越界异常”。

数组的遍历

(1)for语句
例:

int[] a={1,2,3};
for(int i=0;i<a.length;i++)
  System.out.println(a[i]);
  //输出结果为
  1
  2
  3

(2)foreach语句
例:

int[] a=new int[]{1,2,3};
for(int s:a){
          System.out.println(a);
          }

(3)Arrays.toString()
例:

int[] a=new int[]{1,2,3};
  System.out.println(Arrays.toString(a));

一维数组内存分布

在这里插入图片描述
说明:当你定义一个整型数组a时,在java栈中就会为a开辟一块内存0x123;数组中所存放的元素被放在在java推中0x123所开辟的内存中。

数组的拷贝

(1)for语句
例:

int[] a={1,2,3};
int[] b=new int[3];
for(int i=0;i<a.length;i++)
       b[i]=a[i];

(2)Arrays.copyOf();
例:

int[] a={1,2,3};
int[] b=Arrays.copyOf(a,newlength:3);//方法中第一个参数为复制的数组,第二个为新数组的长度

(3)System.arraycopy()
System.arraycopy( , , , , )中含5个参数,在这里说明时用1-5号来代替。
1为复制的数组,2为复制数组起始复制下标,3为复制后新的数组,4为新数组起始复制下标,5为复制后数组长度。
例:

  int[] a={1,2,3};
  int[] b=new int[4]{2,3,4,5};
 System.arraycopy(a,0,b,3,7);//将数组a从0号下标开始复制到b的4号小标之后,复制后数组长度变为7,数组为{2,3,4,5,1,2,3}

(4)clone();
例:

int[] a={1,2,3};
int[] b=a.clone();//将a数组复制给b数组

二维数组

定义方法
(1)int[][] a=new int[3][2];
(2)int[][] a=new int[3][];
int[3][0]={1,2,3};
int[3][1]={4,5,6};
二维数组相当于定义了一个矩阵,比如上述的定义,就相当于定义了一个3行2列的矩阵,a[0][0]所访问的就是1行1列的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值