java - 对象的属性调用removeAll(),为什么会删除自己
问题描述
public static void main(String[] args) {
Dto dto = new Dto();
List<Long> aList = new ArrayList<>();
aList.add(1L);
aList.add(2L);
aList.add(3L);
dto.setIdList(aList);
List<Long> bList = new ArrayList<>();
bList.add(1L);
bList.add(2L);
List<Long> tempList = dto.getIdList();
tempList.removeAll(bList);
System.out.println(dto.getIdList());
}
@Data
public static class Dto{
public List<Long> idList;
}
这段代码是我写的一个测试方法,里面的代码System.out.println(dto.getIdList());
,dto.getIdList()的大小是1,为什么不是3?为什么会自己删除呢?
解决方案
从Oracle 文档 java11#List#removeall,removeAll()
从此列表中删除包含在指定集合中的所有元素(可选操作)。
,那么会发生什么?该列表idList
具有值 1L、2L、3L 和bList
值 1L、2L。
当你调用removeAll()
时将删除 1L 和 2L 并保留 3L,然后大小为 1
推荐阅读
- identityserver4 - 长时间运行任务的访问令牌
- zebra-printers - 如何在 Zebra 打印机上使用 EPL2 进行打印作业后禁用额外的进纸/分隔页?
- ecmascript-6 - 浏览器控制台 [错误]:未捕获的 SyntaxError:来自 WebGL.js 的意外令牌“导出”
- python-3.x - 一旦另一个函数完成,ProgressBar 是否有可能达到 100%?
- git - 我无法运行任何 git 命令(“不是 git 存储库”错误)
- sql - PostgeSQL - 如何将具有相同 id 的多行的某些字段放在单行的预定义行中
- javascript - 在 Typescript 中扩展内置类型
- python - 熊猫单位置索引器超出范围
- c++ - 在 Qt “no matching function for call to 'connect'” 出现错误
- javascript - 添加 NodeJS (a-color-picker) -> Uncaught Exception: ReferenceError HTML Element is not defined