Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java 8 Stream extract datas from Map

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 ?

like image 801
tweetysat Avatar asked Jul 15 '26 06:07

tweetysat


1 Answers

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));
}
like image 84
Eran Avatar answered Jul 17 '26 20:07

Eran



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!