该方法Arrays.asList(<T>...A)返回的List表示形式A。这里返回的对象是List数组支持的,但不是ArrayList对象。
Arrays.asList(<T>...A)
List
A
ArrayList
我正在寻找对象Arrays.asList()返回值与对象之间的差异- ArrayList一种快速的来源,可以告诉它们而无需深入研究代码。
Arrays.asList()
TIA。
当您调用Arrays.asList时,它不会返回java.util.ArrayList。它返回一个java.util.Arrays$ArrayList由原始源数组支持的固定大小列表。换句话说,它是使用Java的基于集合的API公开的数组的视图。
java.util.ArrayList
java.util.Arrays$ArrayList
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。
UnsupportedOperationException