java怎么定义一个数组的长度

java怎么定义一个数组的长度,第1张

可以通过”Scanner“函数 直接输入参数的形式,创建一个新数组即可,举例:

import java.util.Scanner

public class Test {

public static void main(String[] args) {

Scanner input=new Scanner(System.in)

System.out.println("请输入一个数组长度:")

int length=input.nextInt()//输入一个正整数就是要定义的数组长度

int a[]=new int[length]

}

}

备注:上面的” int a[]=new int[renshu]“就是定义的新的数组,其中length就是数组的长度。

在Java中,数组对象Array的长度是在实例化时就定死了,不能修改。

像你这种情况,一般是新建一个数组,重新设置长度,可能的话再将老数组里的值拷贝进去:

public class ArrayTest {

public static void main(String[] args) {

int[] arr1 = { 1, 2, 3, 4, 5 }// 初始化一个数组,长度是5(定死了)

int[] arr2 = new int[10]// 重新初始化数组,长度是10

// 将老数组复制到新数组

for (int i = 0i <arr1.lengthi++) {

arr2[i] = arr1[i]

}

// 将老数组对象arr1指向新数组

arr1 = arr2

// 如果不要复制,最简单的就是直接实例化

int[] arr1_1 = new int[5]// 初始化一个数组,长度是5(定死了)

arr1_1 = new int[10]// 再实例化一次,就是一个新数组,以前数组里的东西就不存在类

}

}

一般是这样做的。当访问越界,或者添加数据超过数组当前的length时候。

重新申请一个大于等于越界长度的数组。

然后通过Sysmem.arraycopy将原先数组的内容拷贝到新的内存块中。

如果删除了某些元素,使得capacity(容器大小)远大于实际的length时。可以重新构建trim后的数组并copy过去。

这也是ArrayList中的实现方法。System.arraycopy是一个native方法,拷贝效率比较高。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11898723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存