如何在不使用Java初始化的情况下使用数组

时间:2019-04-11 10:01:03

标签: java initialization declaration

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

3 个答案:

答案 0 :(得分:2)

可以随时更改数组的值,但是在创建数组时大小是固定的。

如果在创建数组时大小未知,则可以选择以下选项:

  • 创建一个肯定足以容纳所有用例的数组。这可能会影响内存,因为您可能会分配比实际所需更多的内存。
  • 创建一个相对较小的数组;当超出范围时,创建一个更大的数组,然后将旧数组的内容复制到新数组。这会影响性能,因为复制元素需要处理。

第二种方法是ArrayList类采用的方法,它将为您解决此问题。

答案 1 :(得分: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是一个集合,可以动态缩放)。

答案 2 :(得分: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 

}