Vorwort
Es gibt viele Möglichkeiten, um die Karte in Java zu durchqueren. Schauen wir uns in diesem Artikel die beiden Methoden zum Lesen der Karte in Java und den Vergleich dieser beiden Methoden an.
1. Traversal Map -Methode a
Map map = new HashMap (); Iterator iter = map.EntrySet (). Iterator (); while (iter.hasnext ()) {map.Entry -Eintrag = (Map.Entry) iter.next (); Object Key = Eintrag.GeteKey (); Objekt val = Eintrag.getValue (); } 2. Durchqueren der Kartenmethode B
Map map = new HashMap (); Iterator iter = map.keyset (). Iterator (); while (iter.hasnext ()) {Object key = iter.next (); Object val = map.get (Schlüssel); } 3.. Analysetraversalmethode
Methode A: Map.Entry einmal in den Traversal lesen und dann den Wert direkt erhalten.
Methode B: Basierend auf Keyset iteriert zuerst und liest dann Informationen aus der Karte.
4. Leistungstests
import Java.util.hashMap; Import Java.util.iterator; import Java.util.map; import org.junit.beforeclass; import org.junit.test; öffentliche Klasse Maploopa {private statische Karte <Integer, String> Infos = New HashMap <Integer, String> (); @BeForeClass public static void setup () {für (int i = 0; i <1000000; i ++) {Infos.put (i, "Testinformationen"+i); } System.out.println ("Setup ist fertig."); } @Test public void testMaploopa () {iterator <map.Entry <Integer, String >> iterator = infos.entrySet (). Iterator (); Long start time = system.currenttimemillis (); while (iterator.hasnext ()) {map.entry <Integer, String> Eintrag = iterator.next (); int key = Eintrag.getKey (); String val = Eintrag.getValue (); } System.out.println ("Eine Lösung nimmt die Schleifenkarte mit 1000000 Einträgen auf:" + (System.currentTimemillis ()-StartTime) + "Milli Sekunden"); } @Test public void testMaploopb () {iterator <GanzEger> iterator = infos.keyset (). Iterator (); Long start time = system.currenttimemillis (); while (iterator.hasnext ()) {int key = iterator.next (); String val = Infos.get (Schlüssel); } System.out.println ("B-Lösung nimmt die Schleifenkarte mit 1000000 Einträgen auf:" + (System.currentTimemillis ()-StartTime) + "Milli Sekunden"); }}Testergebnisse:
Es ist ersichtlich, dass 1000.000 Daten in der Karte gespeichert und in diesem Datensatz durchquert werden. Der Leistungsunterschied beträgt fast den 1 -fachen des Effizienzunterschieds.
5. Zusammenfassung
Okay, das obige dreht sich alles um diesen Artikel. Sie können sehen, dass die Effizienz der CAR -Methode A im Allgemeinen höher ist. Im Allgemeinen wird empfohlen, die Methode A zu verwenden. Ich hoffe, dass der Inhalt dieses Artikels für das Studium oder die Arbeit aller Hilfe für alle hilft.