我正在将一个空的 String 数组(我可以从中间件获得)转换为 List 。
对于转换过程,我使用了抛出 java.lang.UnsupportedOperationException 的 Arrays.asList (请参见下面的代码)。
public class Ramddd {
public static void main(String args[]) {
String[] words = null;
if (words == null) {
words = new String[0];
}
List<String> newWatchlist = Arrays.asList(words);
List<String> other = new ArrayList<String>();
other.add("ddd");
newWatchlist.addAll(other);
}
}
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractCollection.addAll(Unknown Source)
at Ramddd.main(Ramddd.java:18)
如果我使用,我不会收到此错误
List<String> mylist = new ArrayList<String>();
for (int i = 0; i < words.length; i++) {
mylist.add(words[i]);
}
这形成了一种适当的List
和任何类似的操作addALL
,removeALL
看起来不错,但不想使用这种 for 循环方法,因为它可能会导致性能下降。请让我知道将 String 数组转换为 ArrayList 的最佳和安全方法是什么。