I have a Map<String,ExtractedData> extractedDatas and I want to extract some data as return result. I'm quite new with the Stream API and I don't understand what I have to do. I tried with
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(...);
}
What do I have to put in the Collectors.toMap ?
You simply have to pass the functions that map an element of your Stream to both the key and the value of the output Map.
In your case it's simply the key and the value of the Map.Entry elements of the 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));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With