0

我有一个带有默认“Cat”、“Dog”、“Simon”、“Smith”的数组,因此长度为 3。

如果我想编辑 smith 我输入 array[3] = "JR Smith"

但是如果用户想向我尝试的数组添加另一件事:array[4] = "Car" 但它让我超出了界限。

如何在初始化之外扩展数组?

//西蒙

编辑*

是的,我知道有列表。但是数组没有办法。因为我花了很长时间才写出像 200 长度的数组...

4

6 回答 6

8

您不能在其初始化之外扩展数组。为此,建议使用ArrayList。它具有超出其预定义大小的属性。

可以在此处找到使用 ArrayList 的简单示例

于 2012-04-26T20:01:01.283 回答
2

你应该使用一个列表。数组在 java 中不是动态的:

 import java.util.*;

 List<String> list = new ArrayList<String>();
 list.add( "cat" ); 
 list.add( "dog" ); 
 list.add( "bird" ); 
 //later
 list.add( "car" );
于 2012-04-26T20:01:31.247 回答
2

我建议使用 ArrayList。您始终可以使用 toArray() 方法将 ArrayList 转换为数组。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html#toArray%28%29

于 2012-04-26T20:01:48.540 回答
1

有一种方法可以扩大数组:

int[] array = { 1, 2, 3 };
int[] newArray = new int[5];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
array[4] = 5;

array就是现在{ 1, 2, 3, 0, 5 }

您创建一个更大的,将旧的复制到新的并使用新的。这也是ArrayList内部所做的。

于 2012-04-26T20:05:55.010 回答
0

尝试ArrayList改用。一旦你初始化了一个数组,你就不能改变它的大小,当然除非你重新初始化它。

在这里看到Java 动态数组大小?

于 2012-04-26T20:04:42.087 回答
0

我个人最喜欢的方法是导入 java.util.Arrays 然后使用类似的东西:

List tempList = Arrays.asList(yourArray)
tempList.add(whateverYouWant)
yourArray = tempList.toArray();

第一行将您的数组转换为列表,第二行添加到列表中,第三行将其更改回来。

于 2014-03-24T05:02:17.737 回答