当您调用Arrays.asList时,它不会返回
java.util.ArrayList。它返回一个
java.util.Arrays$ArrayList由原始源数组支持的固定大小列表。换句话说,它是使用Java的基于集合的API公开的数组的视图。
String[] sourceArr = {"A", "B", "C"}; List<String> list = Arrays.asList(sourceArr); System.out.println(list); // [A, B, C] sourceArr[2] = ""; // changing source array changes the exposed view List System.out.println(list); //[A, B, ] list.set(0, "Z"); // Setting an element within the size of the source array System.out.println(Arrays.toString(sourceArr)); //[Z, B, ] list.set(3, "Z"); // java.lang.ArrayIndexOutOfBoundsException System.out.println(Arrays.toString(sourceArr)); list.add("X"); //java.lang.UnsupportedOperationException list.remove("Z"); //java.lang.UnsupportedOperationException
您不能向其中添加元素,也不能从中删除元素。如果您尝试从中添加或删除元素,您将获得
UnsupportedOperationException。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)