gpt4 book ai didi

java - 如何在 Java 中创建可调整大小的抽象 arrayList

转载 作者:行者123 更新时间:2023-12-02 02:45:18 24 4
gpt4 key购买 nike

假设

class A{}
Class B extends A{}
Class C extends A{}
Class D extends A{}
Class E extends A{}

我执行以下操作

List<A> list1 = Arrays.asList(new B(), new C());
List<A> list2 = Arrays.asList(new D(), new E());
list1.addAll(0, list2);

它抛出以下错误

java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.addAll(AbstractList.java:260)

据我了解,此异常意味着无法调整抽象列表的大小。但我需要一个可调整大小的抽象数组列表。有什么办法或者其他想法吗?

最佳答案

Arrays.asList返回 ArrayList但这ArrayListjava.util.ArrayList 不同,它是一个内部类 java.util.Arrays.ArrayList延伸AbstractList

add方法未被此内部类覆盖,这意味着它调用 add关于AbstractListadd AbstractList上的方法抛出UnSupportedOperationException .

为了使用addAll ,您需要使用支持 addAll 的集合例如java.util.ArrayList

使用List<T> list = new ArrayList<T>( Arrays.asList( ... ) )然后调用addAlladd

关于java - 如何在 Java 中创建可调整大小的抽象 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44658066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com