如何在Java中使用没有初始化的数组[重复]

问题描述 投票:0回答:3

这个问题在这里已有答案:

如果我需要使用一个我不知道大小和值的数组,我怎么能在Java程序中声明或初始化它?我试过ArrayList,它可以工作,但如何用数组做?

java initialization declaration
3个回答
2
投票

可以在任何点更改数组的值,但是在创建数组时修复大小。

如果在创建阵列时未知大小,则选项为:

  • 创建一个确保大到足以适合所有用例的数组。这有内存含义,因为你可能会分配比实际需要更多的内存。
  • 创建一个相对较小的数组;当你超出它的边界时,创建一个更大的数组并将旧数组的内容复制到新数组。这具有性能影响,因为复制元素需要处理。

第二种方法是ArrayList类采用的方法,它为您处理这个问题。


0
投票

请求评论者输入一个表示数组位置的整数。您还可以验证要输入的号码是否在您自己选择的特定范围内。然后创建数组。 java中的代码是这样的

import java.util.*; import java.lang.*;

public static void main (String args[]){

Scanner sc=new Scanner(System.in);

System.out.println("Type in the number of the positions of the array");
int N=sc.nextInt();

// verify the the N is in a specific range of your own choosing'

for(;;)
{
   if ( (N>0)&&(N<10000)) break;
}
int[] A=new int[N];

// handle the array as you wish 

}

0
投票

Java中的数组具有固定的大小。可通过以下方式实现的动态尺寸

arr=new int[N] // value of N is obtained at run time.

这里N的值是在运行时获得的。

否则你可以编写一个函数来扩展数组(当数组被填充时)

  • java.util.Arrays.copyOf(...)方法返回一个更大的数组,包含原始数组的内容。
  • 使用java.lang.System.arraycopy(...),它将创建所需大小的新数组,并将原始数组中的内容复制到新数组。

最好使用Java的数据结构之一,如Vector或ArrayList(ArrayLists是一个集合,可以动态扩展)。

© www.soinside.com 2019 - 2024. All rights reserved.