Java 中数组的动态大小调整

Dynamic resizing of Array in Java

我想在 Java、

中使用动态数组

我将静态声明数组,将值输入数组,一旦数组变满,我将重新初始化数组大小。

数组的内容是被删除还是被保留。

内容在我的程序中被删除了,这是否是预期的? 例子

class a
{
  static int arr[]=new int[10];
     arr[]={1,2,3,4,5};
      public static void main(String args[])
      {
         int N=35;
         arr=new int[N];
         arr[]={1....35};
      }

}

最好使用 arraylist,arraylist 可以增长,这对于数组来说是不可能的。如果您将内容复制到另一个具有不同大小的数组中,请使用 System.arraycopy() 但先前的数组将存在。更好的方法是使用 arraylist 或 vector

是的,因为当您认为您正在调整它的大小时,您实际上是在创建一个具有不同大小的新数组。太期待了!!!

当你写:

arr=new int[N]

您实际上丢弃您的数组对象并创建一个新的大小为 N 的 int 数组。这个新对象不会包含您之前的数组的值。

如果创建更大的数组,则必须将以前的值复制到其中。 更好的是,使用 Java 的数据结构之一,例如 Vector<Integer>ArrayList<Integer>。它们使用动态数组,但您不必了解它也不必担心 - 它们只是有效...

Java 中的数组具有固定大小。使用 ArrayLists,它是一个集合并且可以动态缩放。

而不是

Integer[] ints = new Integer[x]

使用

List<Integer> ints = new ArrayList<Integer>();