0

値が見つかった場合、または存在する場合に、キー値をハッシュ テーブルに出力しようとしています。このコードは機能していないようです。

    Map<String,Integer> map = new HashMap<String, Integer>();
    for(int j=0;j<al.size();j++){            
        Integer count = map.get(al.get(j));       
        map.put(al.get(j), count==null?1:count+1);   //auto boxing and count

    }
    int max = Collections.max(map.values());
    if( map.containsValue(max))
    {

     System.out.println(map.keySet());
    }
4

1 に答える 1

2

まず、値が複数回発生する可能性があります-一致するすべてのキーを出力したいと思いますか?

次に、ハッシュテーブルは基本的に値によるルックアップ用に設計されていないため、すべてのエントリを反復処理する必要があります。

// Adjust types accordingly
for (Map.Entry<String, String> entry : map.entrySet()) {
    if (entry.getValue().equals(targetValue)) {
        System.out.println(entry.getKey());
    }
}

一部の値が null である可能性がある場合は、等価チェックを変更する必要があります。

于 2013-03-03T09:17:30.460 に答える