LinkedHashMapにStringとIntegerが含まれていることを前提に、LinkedHashMapの値に基づいてソートする方法を教えてください。ですから、IntegersであるValuesに基づいてソートする必要があります。 ありがとうございますLinkedHashMapをソートする
答えて
これは、今のJava 8のストリームとかなり簡単です:あなたは、ソートする中間マップは必要ありません。
map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.forEach(entry -> ...);
LinkedHashMap
はただ挿入注文を維持しています。値に基づいてソートする場合は、独自のcomparator
を作成する必要があります。
List<Map.Entry<String, Integer>> entries =
new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> a, Map.Entry<String, Integer> b){
return a.getValue().compareTo(b.getValue());
}
});
Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
for (Map.Entry<String, Integer> entry : entries) {
sortedMap.put(entry.getKey(), entry.getValue());
}
まあまあ、私はまったく同じコードを書いていました! :)最後の部分を除いて、私はOPが実際にそれらを地図に戻す必要があるとは思わない。 –
ありがとうございました。非常に便利なコード – Ramin
ニースの答え。降順で並べ替える必要があったので、コンパレータから値を返す間に-ve記号を追加しました。 –
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.SortedMap;
import java.util.TreeMap;
public class HashMapTest {
public static void main(String[] args) {
Map<String, Integer> map=new LinkedHashMap<String, Integer>();
map.put("a", 11);
map.put("B", 12);
map.put("c", 3);
map.put("d", 4);
map.put("e", 5);
map.put("f", 6);
map.put("g", 7);
map.put("h", 8);
map.put("i", 9);
map.put("j", 3);
map.put("k", 2);
map.put("l", 1);
List<Map.Entry<String, Integer>> entries = new
ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(entries,new CustomizedHashMap());
Map<String, Integer> sortedMap = new LinkedHashMap<String,
Integer>();
for (Map.Entry<String, Integer> entry : entries) {
sortedMap.put(entry.getKey(), entry.getValue());
System.out.print(sortedMap.put(entry.getKey(),
entry.getValue())+" ");
}
}
}
class CustomizedHashMap implements Comparator<Map.Entry<String, Integer>> {
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
// TODO Auto-generated method stub
return -o1.getValue().compareTo(o2.getValue());
}
}
- 1. リストをLinkedHashMapにリストアする
- 2. Java LinkedHashMapからScala LinkedHashMapに変換するには?
- 3. Java LinkedHashMapのクローニング
- 4. LinkedHashMap拡張エラー
- 5. LinkedHashMap to Pojo
- 6. ソフトリファレンスJavaでLinkedHashMap?
- 7. AndroidでLinkedHashMap <string、LinkedHashMap <string、string >>を表示する方法
- 8. BLOB内のLinkedHashMapを維持する
- 9. JavaでLinkedHashMapを小さくする
- 10. LinkedHashMapにputメソッドを使用するNullpointerException
- 11. LinkedHashMapを複合オブジェクトにキャストする
- 12. LinkedHashMapをvalueクラスのフィールドでソートするにはどうすればよいですか?
- 13. Mule ConsumerIteratorエラーはLinkedHashMapです
- 14. LinkedHashMapを使用したConcurrentModificationException
- 15. linkedHashMapを使用したメモリリーク
- 16. LinkedHashMap内のリンクリストにアクセスするには?
- 17. ArrayListまたはMultiple LinkedHashMap
- 18. LinkedHashMapをKotlinの値でソートする方法は?私は</p> <pre><code>map.toSortedMap() </code></pre> <p>を使用することができます。しかしKotlinの値でのLinkedHashMapソートするための最良の方法は何であるのキーでソートするには
- 19. PythonのLinkedHashMapに相当します。
- 20. 来る方法LinkedHashMapは生の型です。ジェネリック型のLinkedHashMap <K,V>への参照は、Eclipse
- 21. LinkedHashMap属性を使用したJava - コレクション
- 22. LinkedHashMapとHibernateをどのようにマップするのですか?
- 23. キーを使用せずにLinkedHashMapに値を挿入する
- 24. HashMapをLinkedHashMapに変換/キャストする方法は?
- 25. カスタムLinkedHashMapを効率的に実装する方法
- 26. JSONObjectでLinkedHashMapの順序を保持する方法は?
- 27. ScalaでLinkedHashMap要素の順序を逆にする方法
- 28. 指定した順序でLinkedHashMapからKeySetを取得する
- 29. LinkedHashMapからArrayListとしてのマップ値を抽出する
- 30. Java LinkedHashMapをC++に変換するstd :: map
あなたがのLinkedHashMapを使用する必要がありますか? TreeMapは役に立ちますか? – RNJ
これは役立つかもしれないhttp://stackoverflow.com/questions/780541/how-to-sort-hash-map – RNJ
ああ。そうですか。コメントを読むことを気にしなかった。^_^ – DankMemes