【发布时间】:2020-02-29 07:14:16
【问题描述】:
我有一个地图对象
public class Employee {
private int id;
private String name;
private String designation;
}
Map<Integer, Employee> map = new HashMap<Integer, Employee>();
我想根据 Employee 中的一个属性过滤地图,该属性应该与用户输入的给定属性相匹配,比如 userName。
我正在使用
public List<Employee> getEmployeesByName(String userName) {
map.entrySet().stream().filter(e-> e.getValue().getName().equals(userName)).collect(Collectors.toList());
}
我想要List<Employee> 格式的输出。我不明白为什么它的格式是List<Entry<Integer, Employee>>。我在这里错过了什么?
【问题讨论】:
-
请提供minimal reproducible example,说明您尝试过的内容。我们应该能够复制代码并按原样运行而不添加任何内容。这意味着您至少应该有一个带有
main()的类,就像任何独立的Java 程序一样。然后显示你得到的输出并描述你想要的输出。 -
应该是
.collect(Collectors.toList()) -
我已经更正了
-
将
e-> e.getValue().getName() == userName更改为e-> e.getValue().getName().equals(userName)