Ich habe eine Map<String,ExtractedData> extractedDatas
und ich möchte einige Daten als Ergebnis zurückgeben. Ich bin ziemlich neu in der Stream-API und ich verstehe nicht, was ich zu tun habe. Ich habe versucht, mitJava 8 Stream-Extrakt-Daten von Karte
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(...);
}
Was muss ich in der Collectors.toMap
setzen?
Dank. Ich habe versucht mit '.collect (Collectors.toMap (entry -> entry.getKey(), entry -> entry.getValue()));' aber in der Eclipse, wenn ich 'entry.' schreibe, habe ich nicht die 'getKey()' noch 'getValue()', auch wenn der Code funktioniert. – tweetysat
Was ist der Unterschied zwischen 'Map.Entry :: getKey, Map.Entry :: getValue'und' entry -> entry.getKey(), entry -> entry.getValue() '? Beide arbeiten. – tweetysat
@tweetysat Beide sind gültige Möglichkeiten, um die Implementierung einer funktionalen Schnittstelle auszudrücken. Die erste ist eine Methodenreferenz und die zweite ist ein Lambda-Ausdruck. – Eran