我正在尝试做类似的事情:
ArrayList<String> getMerged ( String host, String port, String filesToCopy ){
ArrayList<String> merged = new ArrayList<String>();
merged.add(host);
merged.add(port);
merged.addAll(filesToCopy.split(",")); //which is invalid
return merged;
}
我想知道是否可以在不使用循环的情况下添加filesToCopy.split(“,”)元素。
另外,如果上述操作可以在字符串数组中完成,比如说合并String [](如果需要,还可以将filesToCopy传递为String []),那么最终效果会更好,我将把这个arrayList转换为数组。
我不是Java编程的新手,所以请不要介意这是一个愚蠢的问题。
最佳答案
您可以在单个数组中执行此操作:
String[] files = filesToCopy.split(","); // filesToCopy is an ArrayList, so I'm not
// sure how this works; I'm assuming it's
// a typo. Just get the files array somehow
String[] merged = new String[2 + files.length];
merged[0] = host;
merged[1] = port;
for (int i = 2; i < merged.length; i++) {
merged[i] = files[i-2];
}
或者,没有“循环的开销”:
merged[0] = host;
merged[1] = port;
System.arraycopy(files, 0, merged, 2, files.length);
当然,这仍然会使用“幕后”循环,这是不可避免的。