publicvoidadd(int index, E element){ thrownew UnsupportedOperationException(); }
public E remove(int index){ thrownew UnsupportedOperationException(); }
抛出异常的地方,clear底层也会调用到remove所以也会抛出异常。
解决办法
1.通过一个循环遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// for Java 1.5+ static <T> List<T> arrayToList(final T[] array){ final List<T> l = new ArrayList<T>(array.length);
for (final T s : array) { l.add(s); } return (l); }
// for Java < 1.5 (no generics, no compile-time type-safety, boo!) static List arrayToList(final Object[] array){ final List l = new ArrayList(array.length);
for (int i = 0; i < array.length; i++) { l.add(array[i]); } return (l); }
2.最简便的方法(推荐)
1
List list = new ArrayList<>(Arrays.asList("a", "b", "c"))
3.使用 Java8 的Stream(推荐)
1 2 3 4 5
Integer [] myArray = { 1, 2, 3 }; List myList = Arrays.stream(myArray).collect(Collectors.toList()); //基本类型也可以实现转换(依赖boxed的装箱操作) int [] myArray2 = { 1, 2, 3 }; List myList = Arrays.stream(myArray2).boxed().collect(Collectors.toList());