2014-03-27 111 views
0

正如標題所示,如果映射中的2個字符串鍵不具有相同的字符串值,則必須編寫一個方法,否則返回false.I已寫入以下方法。但是,它在所有情況下均返回true。這裏的建議將有所幫助。鍵映射到HashMap中的相同值?

public static boolean isUnique(Map<String,String> map) 
    { 
     Iterator<String> iter=map.keySet().iterator(); 
     while(iter.hasNext()) 
     { 
      String s=iter.next(); 
      if(map.containsValue(s)) 
       return false; 
     } 
     return true; 
    } 

在此先感謝

+2

您正在迭代鍵並將鍵用作值。 –

回答

6

最簡單的方法是將值轉換爲一組。由於一個集合不能包含重複值,如果集合的大小等於地圖的大小,那麼該地圖不包含任何重複值。

public static boolean areValuesUnique(Map<?,?> map) { 
    return new HashSet<>(map.values()).size() == map.size(); 
}