对象的属性调用了removeAll(),为什么把自己删除了

The property of the object calls removeAll(), why did it delete itself

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 doc java11#List#removeallremoveAll()

Removes from this list all of its elements that are contained in the specified collection (optional operation).


那会发生什么? 列表 idList 的值为 1L、2L、3L,在 bList 中 值 1L、2L。

当你调用removeAll()时会去掉1L和2L,剩下3L,那么大小就是一个

这是解决问题的方法