2013-06-03 106 views
1

我無法迭代treemultimap中的值。請告訴我錯在這裏......我要打印的值作爲自然順序爲TreeMultimap迭代問題

a 11 12 
a 11 12 
b 13 1 2 3 
b 13 1 2 3 
b 13 1 2 3 
b 13 1 2 3 
c 14 



public static void main(String[] args) { 
       TreeMultimap<String, Integer> mp = TreeMultimap.create(); 
            mp.put("a", 10); 
       mp.put("a", 11); 
       mp.put("a", 12); 
       mp.put("b", 13); 
       mp.put("c", 14); 
       mp.put("e", 15); 
       mp.put("b", 1); 
       mp.put("b", 2); 
       mp.put("b", 3); 
       List list = null; 

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

        for(int j=0;j<list.size();j++) 
        { 

        System.out.println(me.getKey()+": value :"+list.get(j).toString() .replaceAll("^\\[|\\]$", "").replaceAll(",", " ")); 
        } 
+0

的Map.Entry不是通用的?嘗試Map.Entry

+0

迭代器發出此錯誤「對於類型TreeMultimap 」 – user2444474

+0

,未定義方法iterator(),這意味着iterator()方法不存在。而不是在javadoc中https://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/TreeMultimap.html –

回答

3

什麼不要過度複雜,可以在3線來完成:

for (String key : mp.keySet()) { 
     System.out.println(key + ": " + mp.get(key)); 
    }