java - 使用多个列表保留所有值
问题描述
在 java 中,我有List<Integer> source, list1, list2
. 所以,我必须保留source
withlist1
和list2
like
// #source = {1, 2, 3, 4, 5}, #list1 = {1, 2}, #list2={3}
source.retainAll(list1, list2);
// New source should like #source = {1, 2, 3}
但是retainAll
将只接受一个参数,但我们必须传递多个参数。有没有办法这样做?
解决方案
方法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]
推荐阅读
- arrays - VBA:嵌入单元格中的字符串(例如“35英里”) - 如何根据距离的大小格式化单元格?
- node.js - 显示 mongodb-nodejs 驱动程序中所有获取的文件的总和
- php - “双向呼叫通信”私人语音通信创建呼叫 Nexmo 号码使用 (php/Laravel/Voice API)
- create-react-app - 如何使用 Yarn 2 创建 React App?
- azure-ad-b2c - 在不更新客户端的情况下自定义标准 B2C 用户流
- typescript - 如何扩展@types/mocha Context 类
- php - 在 bind_param 中将 s 用于 int
- appium - Robotframework:ValueError:元素定位器'locator(332,400)'不匹配任何元素
- php - 如何修复错误通知数组到字符串的转换
- android - 如何从用户那里获取日期范围?