如何在 Java 中使用没有初始化的数组

how to use arrays without initialization in Java

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

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

如果创建数组时大小未知,您的选择是:

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

第二种方法是 ArrayList class 采取的方法,它会为您解决这个问题。

Java 中的数组具有固定大小。可以通过

实现的动态尺寸
arr=new int[N] // value of N is obtained at run time.

这里N的值是在运行时间里得到的

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

  • java.util.Arrays.copyOf(...) 方法 returns 一个更大的数组,包含原始数组的内容。

  • using java.lang.System.arraycopy(...),这将创建一个所需大小的新数组,并将内容从原始数组复制到新数组。

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

要求审稿人输入一个代表数组位置的整数。您还可以验证要输入的数字是否在您自己选择的特定范围内。然后创建数组。 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 

}