连接arraylists

时间:2015-11-17 15:45:25

标签: java arraylist concatenation

你能以某种方式将两个arraylists连接到第三个吗? 我知道你可以做到(如下所示):

ArrayList<String>arraylist1 = new ArrayList<>();
    ArrayList<String>arraylist2 = new ArrayList<>();

    ArrayList<String>al = new ArrayList<>();
    al.addAll(arraylist1);
    al.addAll(arraylist2);

但如果你在不同的构造函数中有arraylists,你怎么做?:

ArrayList<People>arraylist1 = new ArrayList<>();
ArrayList<Billing>arraylist2 =new ArrayList<>();

1 个答案:

答案 0 :(得分:3)

addAll的方法Collection<E>有签名

public boolean addAll(Collection<? extends E> c)

此处的通配符(?)表示它足以接受E的任何子类型的任何集合。

这意味着如果您的第三个列表的元素类型是两个原始列表类型的常见超类型(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);

然而,通常最好尽量避免以这种方式使用混合类型的集合。

相关问题