我是Java的新手,所以我需要一点帮助
我有
String [] scripts = new String [] ("test3","test4","test5");
我想将新字符串(string1,string2)添加到此数组(脚本)中以供示例
String string1= " test1"
String string2 = "test2"
我想添加新字符串,而不是在init中,但在后期阶段
我怎么做?
答案 0 :(得分:116)
您无法在java中调整数组大小。
一旦声明了数组的大小,它就会保持不变。
相反,您可以使用具有动态大小的ArrayList
,这意味着您无需担心其大小。如果您的数组列表不够大,无法容纳新值,那么它将自动调整大小。
ArrayList<String> ar = new ArrayList<String>();
String s1 ="Test1";
String s2 ="Test2";
String s3 ="Test3";
ar.add(s1);
ar.add(s2);
ar.add(s3);
String s4 ="Test4";
ar.add(s4);
答案 1 :(得分:18)
首先,这里的代码,
string [] scripts = new String [] ("test3","test4","test5");
应该是
String[] scripts = new String [] {"test3","test4","test5"};
请在Arrays
上阅读本教程其次,
数组是固定大小的,因此您无法在上面的数组中添加新的字符串。您可以覆盖现有值
scripts[0] = string1;
(或)
创建具有大小的数组,然后继续添加元素直到它已满。
如果您想要可调整大小的数组,请考虑使用ArrayList。
答案 2 :(得分:9)
你必须写下一些方法来创建一个临时数组,然后像
一样复制它public String[] increaseArray(String[] theArray, int increaseBy)
{
int i = theArray.length;
int n = ++i;
String[] newArray = new String[n];
for(int cnt=0;cnt<theArray.length;cnt++)
{
newArray[cnt] = theArray[cnt];
}
return newArray;
}
或 ArrayList 有助于解决您的问题。
答案 3 :(得分:5)
许多答案表明更好的解决方案是使用ArrayList。 ArrayList大小不固定,易于管理。
它是List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。
每个ArrayList实例都有一个容量。容量是用于存储列表中元素的数组的大小。它始终至少与列表大小一样大。随着元素添加到ArrayList,其容量会自动增长。
请注意,此实现未同步。
ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test1");
scripts.add("test2");
scripts.add("test3");
答案 4 :(得分:4)
由于Java数组包含固定数量的值,因此在这种情况下需要创建长度为5的新数组。更好的解决方案是使用 ArrayList ,只需 添加 字符串即可。
示例:
ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test3");
scripts.add("test4");
scripts.add("test5");
// Then later you can add more Strings to the ArrayList
scripts.add("test1");
scripts.add("test2");