【发布时间】:2019-02-18 07:11:42
【问题描述】:
我有一个列表和一个地图如下:
public class student {
private String name;
private String age;
private String id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
student(String id,String name,String age)
{
}
}
List<student> stulist = Arrays.asList(new student("1", "vishwa",null),
new student("3", "Ravi",null),
new student("2", "Ram",null));
Map<String,String> newmap = new HashMap() {
{
put("1","20");
put("2","30");
}
};
我是这样比较的:如果地图中的 id 与列表中的 id 匹配,则添加 从 Map 到 List 的年龄。
到目前为止我已经尝试过了,但我无法得到它。
newmap.entrySet().stream().filter(entry->entry.getKey().equals(student::getId)).collect(..collect here to list..);
【问题讨论】:
-
你从哪里得到
student::getId?您可能需要两级映射/过滤.. -
可以添加地图声明吗?
-
你应该遵循 Java 命名约定:类名总是用 PascalCase 写的,所以它应该以大写开头。 IE。
student应该是Student。
标签: java java-8 java-stream