0

値を分割する方法は?

public static void main(String[] args) { 
    // Map<String,Set<String>> dep = new HashMap<String,Set<String>>();
    MultiHashMap mp = new MultiHashMap();

    mp.put("a", "10");
    mp.put("a", "12"); 
    mp.put("a", "11"); 
    mp.put("b", "1"); 
    mp.put("c", "14"); 
    mp.put("e", "");
    mp.put("b", "1");
    mp.put("b", "2");
    mp.put("b", "3");
    List list = null; 

    Set set = mp.entrySet();              
    Iterator i = set.iterator(); 

    while (i.hasNext()) { 
        Map.Entry me = (Map.Entry) i.next(); 
        list = (List) mp.get(me.getKey());

        int itemCount = list.size();
        for (int z = 0; z < itemCount; z++) {
            System.out.println(me.getKey());
            System.out.println(me.getValue());

        }
    }                  
}

しかし、私は値を取得しています

e
[]
b
[1, 1, 2, 3]
b
[1, 1, 2, 3]
b
[1, 1, 2, 3]
b
[1, 1, 2, 3]
c
[14]
a
[10, 12, 11]
a
[10, 12, 11]
a
[10, 12, 11]

しかし、値を次のように表示する必要があります

a:10
a:12
a:11
b:1
b:1
b:2
b:3
c:14
e:

上記のように値を出力するにはどうすればよいですか?

4

3 に答える 3

0

Try this

public static void main(String[] args) {
    // Map<String,Set<String>> dep = new HashMap<String,Set<String>>();
    MultiHashMap mp = new MultiHashMap();
    mp.put("a", "10");
    mp.put("a", "12");
    mp.put("a", "11");
    mp.put("b", "1");
    mp.put("c", "14");
    mp.put("e", "");
    mp.put("b", "1");
    mp.put("b", "2");
    mp.put("b", "3");
    List list = null;

    Set set = mp.entrySet();
    Iterator i = set.iterator();
    while (i.hasNext()) {

        Map.Entry<String, List<String>> me = (Map.Entry) i.next();

        for(int j = 0 ; j< me.getValue().size(); j++ )
        {
            System.out.println(me.getKey() +" : " +me.getValue().get(j));
        }
    }
}

Output is

e : 
b : 1
b : 1
b : 2
b : 3
c : 14
a : 10
a : 12
a : 11
于 2013-06-05T20:48:53.410 に答える