你能以某种方式将两个数组列表连接到第三个吗? 我知道当你有(如下)时你可以做到:
ArrayList<String>arraylist1 = new ArrayList<>();
ArrayList<String>arraylist2 = new ArrayList<>();
ArrayList<String>al = new ArrayList<>();
al.addAll(arraylist1);
al.addAll(arraylist2);
但是如果你在不同的构造函数中有数组列表,你该怎么做呢?:
ArrayList<People>arraylist1 = new ArrayList<>();
ArrayList<Billing>arraylist2 =new ArrayList<>();
最佳答案
方法addAll
的Collection<E>
有签名
public boolean addAll(Collection<? extends E> c)
这里的通配符( ?
)意味着它足够通用,可以接受 E
任何子类型的任何集合。 。
这意味着,如果您的第三个列表的元素类型是两个原始列表类型的公共(public)父类(super class)型(Object
将始终有效),您就可以做到这一点。
例如,打印 [X, Y, 1, 2, 3]
.
List<String> list1 = Arrays.asList("X", "Y");
List<Integer> list2 = Arrays.asList(1, 2, 3);
List<Object> list3 = new ArrayList<>();
list3.addAll(list1);
list3.addAll(list2);
System.out.println(list3);
但是,通常最好尽量避免以这种方式使用混合类型的集合。
关于java - 连接数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761136/