首页 > 解决方案 > 使用多个列表保留所有值

问题描述

在 java 中,我有List<Integer> source, list1, list2. 所以,我必须保留sourcewithlist1list2like

// #source = {1, 2, 3, 4, 5}, #list1 = {1, 2}, #list2={3}

source.retainAll(list1, list2);

// New source should like #source = {1, 2, 3}

但是retainAll将只接受一个参数,但我们必须传递多个参数。有没有办法这样做?

标签: javalistcollectionsset

解决方案


方法retainAll没有带有两个参数的重新加载版本。您可以使用 API Collection 的接口(方法Collection.addAll)来合并两个列表,例如:

List<Integer> source = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2));
List<Integer> list2 = Arrays.asList(3);
list1.addAll(list2);

source.retainAll(list1);

System.out.println(source);

输出:

[1, 2, 3]

推荐阅读