该方法Arrays.asList(<T>...A)
返回的List
表示形式A
。这里返回的对象是List
数组支持的,但不是ArrayList
对象。
我正在寻找对象Arrays.asList()
返回值与对象之间的差异-
ArrayList
一种快速的来源,可以告诉它们而无需深入研究代码。
TIA。
当您调用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
。
问题内容: 在执行简单程序时,我注意到了这个问题。 编译错误返回为。但是在Java中是不允许的,为什么会出现这种编译错误? 我没有在这里问关于自动装箱的问题,我只是想知道如何返回。 asList的实现是 因此,将int []视为T才是这种情况的原因。 问题答案: 中的基础int没有自动自动装箱。 实际上是一个对象,而不是原始对象。 在这里返回。确实是无效的语法。 您可以使用: List examp
我读过这篇文章:java中arrays.aslist(array)与新arraylist (arrays.aslist(ia))之间的差异 当然,包装器上不允许一些列表操作,比如从列表中添加或删除元素,您只能读取或覆盖元素。 如果list2有List接口的引用,我期望它用Java实现List接口中包含的所有方法。https://docs.oracle.com/javase/7/docs/api/j
注:[2017年1月11日]RestInfoAdapter.java的源代码已经更改和更新(参见下面的第2项) 我一直在尝试通过保留原始输入列表的备份/副本来使我的搜索视图返回到原始列表。但是,它根本不起作用。我的这个问题包括使用自定义类的RecyclerView和ArrayList。 是一个名为<code>RestInfo 我是如何尝试的 适配器类,以便RestInfo可以呈现在卡片视图中(因此
问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如:
问题内容: 返回一个类型列表。但是List是一个接口,那么如何实例化它呢?如果尝试并实例化一个类型化的列表,我会收到一条错误消息,指出这是不可能的。 编辑 没关系,我看到了怎么回事,只是被文档混淆了片刻。 问题答案: 这是一个不应该与混淆。它是数组的包装,这意味着您进行了任何更改,更改了原始数组,并且无法添加或删除条目。通常将其与ArrayList结合使用,例如
问题内容: 返回一个类型列表。但是List是一个接口,那么如何实例化它呢?如果尝试并实例化一个类型化的列表,我会收到一条错误消息,指出这是不可能的。 编辑 没关系,我看到了怎么回事,只是被文档混淆了片刻。 问题答案: 这是一个不应该与混淆。它是数组的包装,这意味着您进行了任何更改,更改了原始数组,并且无法添加或删除条目。通常将其与ArrayList结合使用,例如