私は整数のマルチマップと文字列のリスト[]を持っています。ここでは、キーに基づいてマルチマップの最高10の値を取得する必要があります。Javaのマルチマップから最大10個のキー値を選択
私はキーと値は、今私は、キーに基づいて、最高10の値を取得する必要があります
Key Value
3 [0,0],[1,0],[0,1]
6 [0,1],[1,1],[0,0]
1 [1,0],[1,1],[0,1],[0,0]
2 [1,1],[0,0]
、以下のようにしている場合は、同様の方法でそれを実装しようとしています。
最初最高キーが6であるので、それは6のすべての値を取得しなければならない - >([0,1]、[1,1]、[0,0])
次に得ます - >([0,0]、[1,0]、[0,1])の次の最も高いキー3の残りの値
次に、 ([1,1]、[0,0])
次に、 - >([1,0]、[1,1])の次の最高のキー1の残りの値を取得します。
私は10の値しか必要としないので、(キー3からの3つの値+ [キー3からの]値+キー2からの2つの値+2の値キー1から)合計10の値です。
Map<Integer, List<String[]>> outdoorElements = new HashMap<Integer, List<String[]>>();
putObjects(outdoorElements,EvaluationCount,schedules);
private static void putObjects (Map<Integer, List<String[]>> outdoorElements, Integer key, String[] value) {
List<String[]> myClassList = outdoorElements.get(key);
if(myClassList == null) {
myClassList = new ArrayList<String[]>();
outdoorElements.put(key, myClassList);
}
myClassList.add(value);
}
私は一生懸命値を取得する方法をしようとしています:
は、ここに私のコードです。もし誰かが私をこのように導くことができたら本当に感謝します。
キーをソートする方法をウル問題であるのに役立ちます願っていますか?または最初の10個の値を取得する方法は? TreeMapを使用できますか?値の数を維持しますか? – ajc
私は新人です。だから私は並べ替える方法に立ち往生しても値を取得@ ajc –
あなたがTreeMapを使用した場合、キーがソートされます。 descendingMapを呼び出してdescモードでソートし、その値を反復処理するだけでよいでしょう。 –