Wie filtern "Null" -Werte von HashMapString, String? [Duplikat]

8

Nachfolgende Karte, die beide Schlüssel / Wert-Paare als String hat, Schreiben Sie eine Logik, um alle Nullwerte aus Map zu filtern, ohne externe APIs zu verwenden?

Gibt es einen anderen Ansatz, als die gesamte Karte zu durchlaufen und die Werte herauszufiltern (die gesamte Karte zu durchlaufen und das Entry-Objekt zu bekommen und dieses Paar zu verwerfen)?

%Vor%     
RaBa 08.03.2016, 09:29
quelle

3 Antworten

52

Sie können die Methode java 8 Collection.removeIf zu diesem Zweck:

%Vor%

Dies hat alle Werte entfernt, die null sind.

Online-Demo

    
Ferrybig 08.03.2016 09:34
quelle
15

Wenn Sie Pre-Java 8 verwenden, können Sie Folgendes verwenden:

%Vor%

Dies funktioniert, weil HashMap.values() eine Ansicht der Werte und:

zurückgibt
  

Die Sammlung [zurückgegeben von HashMap.values() ] unterstützt das Entfernen von Elementen, wodurch das entsprechende Mapping über die Operationen Iterator.remove, Set.remove, removeAll, retainAll und clearance aus der Map entfernt wird

Oder Sie können es ohne explizite Iteration tun:

%Vor%     
Andy Turner 08.03.2016 09:36
quelle
4

das wird funktionieren

%Vor%     
jberndsen 08.03.2016 09:34
quelle

Tags und Links