如何传递第三个List只是常见的对象?

Ygo*_*aga 2 java list

我需要将两个列表中的普通用户传递给第三个列表.

List<User> listByCity = new ArrayList<User>();
List<User> listByService = new ArrayList<User>();
//initializing listByCity and listByService happens here
.
.
.
List<User> newList = new ArrayList<User>();

newList.addAll(listByCity);
newList.addAll(listByService);
Run Code Online (Sandbox Code Playgroud)

所以我有一个城市的用户列表和另一个提供服务的用户列表,我只需要普通用户,我该怎么做?我刚刚使用'addAll'添加了两个列表,但它不会按我想要的方式工作.

shm*_*sel 6

你可以retainAll()用来保持两者的交集:

List<User> newList = new ArrayList<User>();
newList.addAll(listByCity);
newList.retainAll(listByService);
Run Code Online (Sandbox Code Playgroud)

这只适用于正确User实现equals()(或者如果对象实际上是相同的引用).