2016-05-04 1 views
0

私が持っているリスト:arraylistとHasmapを比較し、値に基づいてハッシュマップからキーを取得する方法は?

ArrayList<String> list = new ArrayList<>(); 

とマップ:私は

問題があることで、その値に基づいてキーをリストの値を比較し、マップと返す必要が

Map<String, List<String>> map = new HashMap<>(); 

arraylistがマップ内の各リストのサイズが小さくなるにつれて、繰り返しを同期させる方法はわかりません。この呼び出しでも、特定の値がある場合はfalseを再調整..but ...

public static Object getKeyByValue(Map<String,List<String>> map, String value) { 
    for (Entry<String, List<String>> entry : map.entrySet()) { 
     if (Objects.equals(value, entry.getValue())) { 
      return entry.getKey(); 
     } 
    } 
    return null; 
} 

getKeyByValue(map,list.get(0)); 

値ごとに各キーを取得する方法任意のアイデアは:

はまた、私はこの方法を試してみましたか? ありがとうございました

答えて

2

List<String>Stringを比較しているため、決してtrueを返しません。 StringListに表示されている場合

使用List.contains代わりに、決定する:

if (entry.getValue().contains(value)) { 
     return entry.getKey(); 
    } 
関連する問題