编辑其边界之外的数组

时间:2012-04-26 19:58:40

标签: java android arrays

我有一个阵列与Defualt“猫”,“狗”,西蒙“,”史密斯“ 因此长度为3。

如果我想编辑史密斯,我输入数组[3] =“JR史密斯”

但是如果用户想要在数组中添加另一个东西我试过:array [4] =“Car” 但它让我不受限制。

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

//西蒙

编辑*

我知道有List。但是阵列没有办法。因为我花了很长时间才写出像200长度阵列......

6 个答案:

答案 0 :(得分:8)

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

可以找到使用ArrayList的简单示例here

答案 1 :(得分:2)

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

 import java.util.*;

 List<String> list = new ArrayList<String>();
 list.add( "cat" ); 
 list.add( "dog" ); 
 list.add( "bird" ); 
 //later
 list.add( "car" );

答案 2 :(得分:2)

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

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

答案 3 :(得分: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内部的作用。

答案 4 :(得分:0)

请尝试使用ArrayList。初始化数组后,您无法更改其大小,除非您重新初始化它。

请参阅此处Java dynamic array sizes?

答案 5 :(得分:0)

我个人最喜欢的方法是导入java.util.Arrays,然后使用以下内容:

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

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