[英]Adding a string array to a list
对于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没有更短的解决方案,而不得不创建另一个变量来做到这一点。 – 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"});
这个答案是在您对帖子进行编辑之后得出的。 您不必显式创建另一个变量,可以使用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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.