Iteration über eine HashMap, zwei Möglichkeiten: die Iteration mit dem Eintrag set & Iteration mit Aufzählung

Sind HashMaps soll Durchlaufen werden, die in diesen beiden Möglichkeiten, oder ist die Aufzählung als falsch? Ich machte einen einfachen iterator-Programm mit zwei iterator-Funktionen:

import java.util.*;

public class HashMapIterators
{
    public static void main(String[] args)
    {
        HashMap<String, Integer> hMap = new HashMap<String, Integer>();

        hMap.put("abc", 10);
        hMap.put("pqr", 20);
        hMap.put("asd", 30);
        hMap.put("xyz", 40);

        iteratorEnumeration(hMap);
        iteratorEntrySet(hMap);
    }

    public static void iteratorEnumeration(HashMap hMap)
    {
        System.out.println("iteratorEnumeration");

        Iterator it = hMap.keySet().iterator();
        Enumeration em = hMap.elements();               //doesn't work
        Enumeration em = new IteratorEnumeration(it);   //doesn't work

//     while(em.hasMoreElements())
        {
        }
    }

    public static void iteratorEntrySet(HashMap hMap)
    {
        System.out.println("iteratorEntrySet");

        Iterator it = hMap.entrySet().iterator();

        while(it.hasNext())
        {
            Map.Entry me = (Map.Entry)it.next();
            System.out.println("Key: [" + me.getKey() + "], Value: [" + me.getValue() + "]");
        }
    }
}

Den iteratorEnumeration-Funktion funktioniert nicht, ich denke, dass diese Methoden (wie Elemente()) ist anwendbar auf HashTable ist nur. Korrigieren Sie mich, wenn ich falsch bin, ich weiß nicht, Wann ist es angebracht, zu verwenden, was Funktion. Also, meine wichtigste Frage ist - sollten wir iterieren über eine HashMap, indem ein iterator über die Methode entrySet (bitte siehe mein iteratorEntrySet-Funktion), ist dies der einzig richtige Weg, es zu tun?

InformationsquelleAutor MdT | 2013-03-23

Schreibe einen Kommentar