hel*_*hod 1 java collections list
我有这个方法,它采用字符串的变量,从中创建一个List,然后尝试删除列表的第一个元素.
public void importFrom(String... files) {
List<String> fileList = Arrays.asList(files);
String first = fileList.remove(0);
// other stuff
}
Run Code Online (Sandbox Code Playgroud)
但是一旦remove被召唤,UnsupportedOperationException就会被抛出.我的猜测是返回List-Type不支持remove方法.我对么?我有什么替代品?
Arrays.asList仅在数组周围提供薄包装.此包装器允许您使用API 对阵列执行大多数操作List.来自JavaDoc的引用:
返回由指定数组支持的固定大小的列表.[...]此方法充当基于数组的API和基于集合的API之间的桥梁[...]
如果你真的想删除一些东西,那么这可能会有效:
List<String> realList = new ArrayList<String>(Arrays.asList(stringArray));
Run Code Online (Sandbox Code Playgroud)
这个创建一个真实的ArrayList(支持remove)并用另一个列表的内容填充它,恰好是你的周围的包装String[].