对于add()
方法,如何将字符串数组添加到字符串数组列表中?
E.g:
List<String[]> myList = new ArrayList<String[]>();
String[] myString = {"foo", "bar"};
myList.add(new String[](myString)); //does not work
编辑:是的我已尝试myList.add(myString)
但是,只希望myString的值不通过引用传递。
答案 0 :(得分:5)
回应这个
编辑:是的,我尝试了myList.add(myString),但只想要 myString的值不能通过引用传递。
String[] newArr = new String[myString.length];
for (int i = 0; i < myString.length; i ++) {
newArr[i] = myString[i];
}
myList.add(newArr);
这个
感谢您提供最新答案。它是唯一的解决方案吗?感觉有点奇怪,Java没有更短的解决方案,只是为了创建另一个变量。 - meiryo
String[] newArr = new String[myString.length];
System.arraycopy(myString, 0, newArr, 0, myString.length);
<小时/>
myList.add(new String[](myString)); //does not work
myList.add(myString); //works
您为什么使用new String[]
?
注意:如果要动态生成数组,请执行以下操作:
myList.add(new String[] {"string1", "string2", "foo", "bar"});
因此,您的示例可以缩短为:
List<String[]> myList = new ArrayList<String[]>();
myList.add(new String[] {"foo", "bar"});
答案 1 :(得分:2)
在你的帖子编辑之后得到了这个答案。您不必显式创建另一个变量,请使用Arrays.copyOf(T[] original, int newlength)
。
所以你可以写一下:
myList.add(Arrays.copyOf(myString, myString.length));
答案 2 :(得分:1)
List<String[]> myList = new ArrayList<String[]>();
String[] myString = {"foo", "bar"};
myList.add(myString);
应该工作
答案 3 :(得分:1)
你是否已经尝试过myList.add(myString);