twe*_*sat 3 java java-8 java-stream
我有一个Map<String,ExtractedData> extractedDatas
,我想提取一些数据作为返回结果.我对Stream API很新,我不明白我必须做什么.我试过了
public Map<String,ExtractedData> getExtractedData(String name)
{
return extractedDatas.entrySet().stream()
.filter(entry -> entry.getKey().startsWith(name))
.filter(entry -> entry.getValue().getFieldValue() != null && entry.getValue().getFieldValue() != "")
.collect(Collectors.toMap(...);
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办Collectors.toMap
?
您只需将映射元素的函数传递Stream
给输出的键和值Map
.
在您的情况下,它只是Map.Entry
Stream 的元素的关键和价值.
public Map<String,ExtractedData> getExtractedData(String name)
{
return extractedDatas.entrySet().stream()
.filter(entry -> entry.getKey().startsWith(name))
.filter(entry -> entry.getValue().getFieldValue() != null && entry.getValue().getFieldValue() != "")
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
}
Run Code Online (Sandbox Code Playgroud)