对于该add()
方法,如何将字符串数组添加到字符串数组列表中?例如:
List<String[]> myList = new ArrayList<String[]>();
String[] myString = {"foo", "bar"};
myList.add(new String[](myString)); //does not work
编辑:是的,但是我尝试过myList.add(myString)
,只希望 myString 的值不通过引用传递。
对此作出回应
编辑:是的,我已经尝试过 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 没有更短的解决方案并且必须创建另一个变量才能做到这一点。– 梅里奥
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"});
这个答案是在编辑您的帖子之后出现的。您不必显式创建另一个变量,使用Arrays.copyOf(T[] original, int newlength)
.
所以你可以简单地写:
myList.add(Arrays.copyOf(myString, myString.length));
List<String[]> myList = new ArrayList<String[]>();
String[] myString = {"foo", "bar"};
myList.add(myString);
应该管用
您是否已经尝试过 myList.add(myString) ;