Préface
Il existe de nombreuses façons de traverser la carte en Java. Dans cet article, jetons un coup d'œil aux deux méthodes de lecture de la carte en Java et à la comparaison de ces deux méthodes.
1. Méthode de la carte de traversée A
Map map = new HashMap (); Iterator iter = map.entryset (). Iterator (); while (iter.hasnext ()) {map.entry entrée = (map.entry) iter.next (); Objet key = entry.getKey (); Objet val = entry.getValue (); } 2. Méthode de la carte traversant B
Map map = new HashMap (); Iterator iter = map.KeySet (). Iterator (); while (iter.hasnext ()) {objet key = iter.next (); Objet val = map.get (key); } 3. Méthode de traversée d'analyse
Méthode A: Lisez Map.Entry une fois dans la traversée, puis obtenez directement la valeur.
Méthode B: Basé sur Keyset, itère d'abord, puis lit les informations de la carte.
4. Test de performance
import java.util.hashmap; Importer java.util.iterator; importation java.util.map; import org.junit.beforeclass; import org.junit.test; Classe publique Maploopa {Private Static Map <Integer, String> infos = new HashMap <Integer, String> (); @BeForeClass public static void setup () {for (int i = 0; i <1000000; i ++) {infos.put (i, "tests de test" + i); } System.out.println ("La configuration est terminée."); } @Test public void testmaploopa () {iterator <map.entry <integer, string >> iterator = infos.entryset (). Iterator (); Long startTime = System.CurrentTimemillis (); while (iterator.hasnext ()) {map.entry <nteger, string> entry = iterator.next (); int key = entry.getKey (); String val = entry.getValue (); } System.out.println ("Une solution prend la carte en boucle avec 1000000 entrées:" + (System.Currenttimemillis () - Starttime) + "Milli Seconds"); } @Test public void testmaploopb () {iterator <Integer> iterator = infos.KeySet (). Iterator (); Long startTime = System.CurrentTimemillis (); while (iterator.hasnext ()) {int key = iterator.next (); String Val = infos.get (key); } System.out.println ("La solution B prend la carte en boucle avec 1000000 entrées:" + (System.Currenttimemillis () - Starttime) + "Milli Seconds"); }}Résultats des tests:
On peut voir que 1000 000 données sont stockées dans la carte et traversées dans cet ensemble de données. La différence de performance est près de 1 fois la différence d'efficacité.
5. Résumé
D'accord, ce qui précède est tout sur cet article. Vous pouvez voir que l'efficacité de la méthode de la voiture A est généralement plus élevée. Généralement, il est recommandé d'utiliser la méthode A. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun.