如何通过LinkedHashMap <String,ArrayList <String >>创建循环?

Pro*_*tak 7 java loops map linkedhashmap

请帮我创建一个循环LinkedHashMap<String,ArrayList<String>> h:

if (h.get("key1").size() == 0)
    System.out.println("There is no errors in key1.");
else
    System.out.println("ERROR: there are unexpected errors in key1.");

if (h.get("key2").size() == 0)
    System.out.println("There is no errors in key2.");
else
    System.out.println("ERROR: there are unexpected errors in key2.");

if (h.get("key3").size() == 0)
    System.out.println("There is no errors in key3.");
else
    System.out.println("ERROR: there are unexpected errors in key3.");

if (h.get("key4").size() == 0)
    System.out.println("There is no errors in key4.\n");
else
    System.out.println("ERROR: there are unexpected errors in key4.\n");
Run Code Online (Sandbox Code Playgroud)

Bal*_*a R 13

像这样?

for (String key : h.keySet())
{
    System.out.println("Key: " + key);   
    for(String str : h.get(key))
    {
       System.out.println("\t" +str);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

for (String key : h.keySet())
{
    if(h.get(key).size() == 0)
    {
         System.out.println("There is no errors in " + key) ;
    }
    else
    {
        System.out.println("ERROR: there are unexpected errors in " + key);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 有点晚了,但这是以插入顺序返回还是我们必须使用迭代器?`LinkedHashMap`的javadocs与`HashMap`的javadoc相同 (2认同)

anu*_*ava 7

试试这段代码:

Map<String, ArrayList<String>> a = new LinkedHashMap<String, ArrayList<String>>();
Iterator<Entry<String,ArrayList<String>>> itr = a.entrySet().iterator();
while (itr.hasNext()) {
    Entry<String,ArrayList<String>> entry = itr.next();
    String key = entry.getKey();
    System.out.println("key: " + key);
    List<String> list = entry.getValue();
    System.out.println("value: " + list);
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*nez 5

Java8 中的另一种方法是使用foreach()方法

Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>();
test1.forEach((key,value) -> {
    System.out.println(key + " -> " + value);
});
Run Code Online (Sandbox Code Playgroud)