共计 510 个字符,预计需要花费 2 分钟才能阅读完成。
说这个文章之前, 首先须要理解一件事:
咱们都晓得能够通过 Arrays.asList() 办法, 来将数组转为 list 汇合 ( 如果这样就 ok 也就不须要题目中的后半句话了).
可是以这个办法将数组转换 List 后,不能对 List 增删,只能查改,否则会抛出异样。
这是因为 java.util.Arrays.ArrayList 这外面有 java.util.Arrays 外面的外部类,外面没有重写增删办法,就会调用父类的 AbstractList,能够看到父类的增删办法,就会报错, 即便调用 iterator 也会报错。
而 Arrays.asList() 生成的 list 汇合其实就是 Arrays 的外部类.
能增删元素的数组转 list
既然不能增删咱们就要另辟蹊径,
能够通过:array -> java.util.Arrays.ArrayList -> java.util.ArrayList
实现:
List<String> list = new ArrayList<>(Arrays.asList(array));
这时的 new ArrayList<>(Arrays.asList(array)), 就调用的并不是初始化大小的办法了, 能够进行失常的操作了 (add/remove 都能够)
正文完