繁体   English   中英

将字符串数组添加到列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM