乐趣区

关于java:java中数组转list集合且还能增删元素

说这个文章之前, 首先须要理解一件事:

咱们都晓得能够通过 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 都能够)

退出移动版