返回值要List<User> 不要LIst<String>
时间: 2023-08-17 21:54:48 浏览: 109
如果你需要返回`List<User>`类型的不同元素列表,你可以稍作修改代码。以下是修改后的示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
// getter和setter方法
// 重写equals()和hashCode()方法
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof User)) {
return false;
}
User other = (User) obj;
return this.id == other.id && this.name.equals(other.name);
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
}
public class Main {
public static void main(String[] args) {
// 创建两个列表
List<User> list1 = new ArrayList<>();
list1.add(new User(1, "Alice"));
list1.add(new User(2, "Bob"));
list1.add(new User(3, "Charlie"));
List<User> list2 = new ArrayList<>();
list2.add(new User(2, "Bob"));
list2.add(new User(3, "Charlie"));
list2.add(new User(4, "David"));
// 使用Stream API筛选不同的元素
List<User> differentElements = list1.stream()
.filter(e -> !list2.contains(e))
.collect(Collectors.toList());
// 打印结果
System.out.println("不同的元素:" + differentElements);
}
}
```
在这个示例中,我们修改了`User`类,添加了构造函数、getter和setter方法。同时,重写了`equals()`和`hashCode()`方法来确保正确地比较`User`对象。
然后,我们使用Stream API的`filter`方法来筛选出在`list1`中存在但是在`list2`中不存在的用户,并将结果收集到一个新的`List<User>`中。
输出结果将是不同的用户列表,根据你的具体数据而定。
阅读全文