关于在java中创建动态数组

时间:2012-07-27 16:28:01

标签: java dynamic-memory-allocation

请问您如何创建动态阵列.. !!原始数组可以声明为

int[] myIntArray = new int[3];

但是这次我知道数组的大小是3个元素但是如果我想创建一个动态数组我将如何创建它,请指教。

6 个答案:

答案 0 :(得分:3)

始终使用给定大小初始化数组。如果您希望拥有“动态”集合,请使用List,然后根据需要转换为数组。实例化后,数组无法调整大小,而List可以(忽略不可修改的列表)。

答案 1 :(得分:1)

ArrayLists可以动态增长和缩小:

ArrayList<Integer> list = new ArrayList<Integer>();

//... 
list.add(5);
list.add(1);

//...
int index = list.indexOf(5);
list.remove(index);

答案 2 :(得分:1)

您可以使用变量实例化一个数组,但是一旦实例化,该数组将被卡在该大小。

int[] myArrayInt = new int[arraySizeVariable];

如果你想要一些真正动态的东西,那么我建议改用ArrayList。

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

答案 3 :(得分:0)

使用java.lang.reflect.Array

public static Object newInstance(Class<?> componentType, int length) {}

答案 4 :(得分:0)

在Java中,您可以拥有各种动态的元素组。基本数组[]仍将像任何其他类似语言一样静态,因此您将要使用Collection.java接口的一些实现。

最基本的一个是Vector,它只包含一些对象,不一定是同一个类,并且会在你添加或删除项目时动态增长。如果您希望对它们进行排序,那么您可以使用List.java的实现。如果您希望集合是唯一的,那么您可以使用Set.java的实例。

答案 5 :(得分:-1)

   public int[] createArray(int size){return new int[size];}

嗯,这是一个愚蠢的代码。创建所需大小的数组。一旦创建它就不可扩展。为此,您需要通过在旧阵列已满时复制到更大的阵列来手动扩展。或者更好的是,通过名为ArrayList的集合来完成它,当达到某个阈值时,它会使容量加倍。

如果您实现自己的可扩展数组,它将与使用ArrayList相同:see

  

每个ArrayList实例都有一个容量。容量是用于存储列表中元素的数组的大小。它始终至少与列表大小一样大。当元素添加到ArrayList时,其容量会自动增加。除了添加元素具有恒定的摊销时间成本这一事实之外,未指定增长政策的细节。