如何在hashmap值中迭代List

时间:2013-02-18 22:58:24

标签: java

我有一个HashMap,其中String为关键,List为值。

HashMap的名称为pageMap

说这个pageMap具有以下键和值:

key = order
value = [page1, page2, page3]

现在我想以下列模式显示:

order
   page1
   page2
   page3

key2
   value1
   value2
   value3
   value4

请告诉我该怎么做?

4 个答案:

答案 0 :(得分:3)

import java.util.*;
import java.lang.*;

public class StringListMapExample {

    public static String asTreeFormattedString(HashMap<String,List<String>> map) {
        final StringBuilder builder = new StringBuilder();
        for (String key : map.keySet()) {
            builder.append(key + "\n");
            for (String string : map.get(key)) {
                builder.append("\t" + string + "\n");
            }
        }
        return builder.toString();
    }

    public static void main(String[] args) {
        HashMap<String, List<String>> map = new HashMap<String, List<String>>();
        map.put("order", Arrays.asList(new String[]{"page1", "page2", "page3"}));
        System.out.println(asTreeFormattedString(map));
    }
}

答案 1 :(得分:0)

实际上解决方案非常简单。

hashmap.get(key).iterator();

是给定键列表的迭代器。

你为什么不尝试自己搞清楚?

答案 2 :(得分:0)

Iterate using iterator through all keys of hashmap using keyset()

{

  print key

  Iterate through value list using iterator

  {

   print each value

  }

}

答案 3 :(得分:0)

public String formatDictionary(Map<String, List<String>> map){
    String output = '';
    for (String key : map.keySet()){
        output = output + key + "\n";
        for (String value: map.get(s)){
            output = output + "\t" + value + "\n";
    return output

这与Jeppi的答案非常相似,但使用字符串连接,这是我最喜欢的Java之一。我没有运行任何基准测试,但我的猜测是他会更快一点,但我的开销会更少。

相关问题