2015-06-25 72 views
2

我有以下方法:如何使用Guava的MultiMap輸出唯一的密鑰? (JAVA)

public static void showStuff(Multimap<String, String> map) { 
     for (String key : map.keys()) { 
      System.out.println("The key, " + key 
        + ", has the results: " + map.get(key)); 
     } 
    } 

此輸出:

The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **two**, has the results: [a,a,a,b,b,e] 
The key, **two**, has the results: [a,a,a,b,b,e] 

我怎麼會有它只能輸出唯一的密鑰。我希望它只打印一次陳述,而不是多次重複陳述。我有一個包含重複鍵的不同行的表,因此我使用MultiMap獲取重複鍵的所有值。我現在將如何輸出

The key, **one**, has the results: [a,b,c,d,d,e] 
The key, **two**, has the results: [a,a,a,b,b,e] 

謝謝!

回答

6

您可以使用Multimap.keySet()得到公正的區別鍵。

您可以使用Multimap.entries()獲取(鍵,值)對,而不必返回到映射以請求與每個鍵相關聯的值。

或者,您可以使用Multimap.asMap()將其轉換爲java.util.Map,然後改用它。

1

使用map.keySet(),而不是map.keys()