在日常开发中,经常会遇到数组转集合,例如调用Arrays.asList()会返回一个ArrayList。当我们想在这个集合中使用add()方法的时候就会出现报错如下图所示
出现这种原因是由于Arrays.asList()方法返回的是一个内部类ArraysList.此ArraysList并不是List的实现类ArraysList的那个对象。进入Arrays的源代码中发现这个内部类并没有提供add()方法,就出现了java.lang.UnsupportedOperationException异常
那么我们要通过这个方法把数组转换成集合并且使用add()方法。要怎么做呢?下面是给出的一个静态方法,只需要传入数据就可以获取对应的集合并可以使用add方法添加。关于Stream流的研究本人还不理解也是在网上找的工具类。
public static <E> List<E> transferArrayToList(E[] array){
List<E> transferedList = new ArrayList<>();
Arrays.stream(array).forEach(arr -> transferedList.add(arr));
return transferedList;
}