Gibt alle Schlüssel / Wert-Paare in einer Java ConcurrentHashMap aus

9

Ich versuche, einfach alle Schlüssel / Wert-Paare in einer ConcurrentHashMap zu drucken.

Ich habe diesen Code online gefunden, von dem ich dachte, dass er es tun würde, aber er scheint Informationen über die Buckets / Hashcodes zu bekommen. Um ehrlich zu sein, die Ausgabe ist ziemlich seltsam, es ist möglich, dass mein Programm falsch ist, aber ich möchte zuerst sicherstellen, dass dieser Teil das ist, was ich verwenden möchte.

%Vor%

Dies gibt die Ausgabe für ungefähr 10 verschiedene Schlüssel mit Zählungen, die scheinbar die Summe der Anzahl der gesamten Einsätze in der Karte sind.

    
DanGordon 26.03.2014, 13:52
quelle

6 Antworten

26

Ich habe Ihren Code getestet und funktioniert ordnungsgemäß. Ich habe eine kleine Demo mit einer anderen Möglichkeit hinzugefügt, um alle Daten in der Karte zu drucken:

%Vor%     
Slimu 26.03.2014, 13:55
quelle
14

Die HashMap hat forEach als Teil ihrer Struktur. Sie können das mit einem Lambda-Ausdruck verwenden, um den Inhalt in einem einzigen Liner auszudrucken, wie zum Beispiel:

%Vor%     
Rick Il Grande 14.04.2016 20:15
quelle
5

Sie können etwas wie

tun %Vor%

Hier ist 'map' Ihre gleichzeitige HashMap.

    
nikoo28 08.07.2015 22:20
quelle
4
%Vor%     
Khalid Habib 04.02.2016 10:45
quelle
0

ConcurrentHashMap ist der Klasse HashMap sehr ähnlich, mit dem Unterschied, dass ConcurrentHashMap eine intern gepflegte Nebenläufigkeit bietet. Dies bedeutet, dass Sie beim Zugriff auf ConcurrentHashMap in Multithread-Anwendungen keine synchronisierten Blöcke benötigen.

Um alle Schlüssel / Wert-Paare in ConcurrentHashMap zu erhalten, funktioniert der Code, der Ihrem Code ähnlich ist, perfekt:

%Vor%

Der obige Code ist in einer Multithread-Umgebung in Ihrer Anwendung einigermaßen gültig. Der Grund, ich sage "einigermaßen gültig" ist, dass oben genannten Code noch Threadsicherheit bietet, kann es immer noch die Leistung der Anwendung verringern.

Hoffe das hilft dir.

    
Shishir Kumar 26.03.2014 13:56
quelle
0

Arbeite 100% sicher, probiere diesen Code für den get hashmap Schlüssel und Wert

aus %Vor%

rufen Sie diese Methode nur auf, wenn Sie den HashMap-Wert anzeigen möchten

%Vor%     
Arpit Patel 20.01.2016 06:35
quelle