-1

サーバー用の Minecraft Bukkit プラグインに取り組んでいます。私のプラグインの一部では、ユーザーがマップに投票する必要があります。投票コマンド (例: ) を使用すると、その投票は( , )/vote <mapnumber>に保存されます。これは、ユーザーが新しいマップに投票したかどうか、または投票したいかどうかを検出するためです。HashMapString PlayernameInteger mapnumber

HashMap次に、for ループを使用して投票を新しい( Integer Mapnumber, )に挿入しますInteger Numberofvotes。ここで私は困惑しています。

どのマップ番号が最も多くのメモを持っているかを把握する方法を探しています。

4

2 に答える 2

0

これを試してみてください。最高の投票数が得られます。

int maxNumberofVotes=(Collections.max(map.values()));
于 2013-10-28T13:21:58.777 に答える
0

ハッシュマップを構築した後、キーがマップ番号で値が頻度になる別のハッシュマップを構築できます。あとは、最大周波数を見つけるだけです。

HashMap<Integer,Integer> freq_map = new HashMap<Integer,Integer>();

int map_no=0,fr;
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pairs = (Map.Entry)it.next();
    map_no = pairs.getValue());
    if(map.contains(map_no)) fr = freq_map.get(map_no);
    else fr = 0;

    fr ++;
    freq_map.put(map_no,fr);
}

// to find max

int max = -1,temp;
int result = -1;
Iterator it = freq_map.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pairs = (Map.Entry)it.next();
    temp = pairs.getValue());

    if(temp>max){
        max = temp;
        result = pairs.getKey();
    }
}

System.out.println("Highest frequency = "+result);           
于 2013-10-28T12:20:42.023 に答える