1

你能告诉我如何创建一个动态数组..!! 原始数组可以声明为

int[] myIntArray = new int[3];

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

4

6 回答 6

3

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

于 2012-07-27T16:29:52.670 回答
1

您可以使用变量来实例化数组,但一旦实例化,数组将停留在该大小。

int[] myArrayInt = new int[arraySizeVariable];

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

List<Integer> myArrayList = new ArrayList<Integer>();
于 2012-07-27T16:35:10.730 回答
1

ArrayLists 可以动态增长和收缩:

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

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

//...
int index = list.indexOf(5);
list.remove(index);
于 2012-07-27T16:32:56.237 回答
0

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

最基本的一个是 Vector,它只包含一些对象,不一定属于同一类,并且会随着您添加或删除项目而动态增长。如果您希望它们被订购,那么您可以使用 List.java 的实现。如果您希望集合是唯一的,那么您可以使用 Set.java 的实例。

于 2012-07-27T16:36:33.927 回答
0

使用 java.lang.reflect.Array

public static Object newInstance(Class<?> componentType, int length) {}
于 2012-07-27T16:32:19.723 回答
-1
   public int[] createArray(int size){return new int[size];}

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

如果您实现自己的可扩展数组,则与使用 ArrayList 相同:请参阅

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

于 2012-07-27T16:30:10.440 回答