在Java中动态调整Array的大小

时间:2016-04-18 04:40:32

标签: java arrays dynamic-arrays

我想在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};
      }

}

4 个答案:

答案 0 :(得分:4)

是的,因为当你认为你正在重新调整大小时,你实际上是在创建一个不同大小的新数组。这是非常期待的!!!

答案 1 :(得分:3)

当你写:

arr=new int[N]

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

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

答案 2 :(得分:2)

更好地使用arraylist,arraylist可以增长,这是阵列无法实现的。如果要将内容复制到另一个具有不同大小的数组,请使用System.arraycopy()但前一个数组将存在。更好的方法是使用arraylist或vector

答案 3 :(得分:0)

Java中的数组具有固定的大小。使用ArrayLists这是一个集合&amp;可以动态扩展。

而不是

Integer[] ints = new Integer[x]

使用

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