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

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