Сортировка LinkedHashMap

Как я могу сортировать LinkedHashMap на основе его значений, учитывая, что LinkedHashMap содержит String и Integer. Поэтому мне нужно отсортировать его на основе значений, которые являются целыми. большое спасибо

    Теперь это довольно просто с streamами Java 8: вам не нужна промежуточная карта для сортировки:

    map.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .forEach(entry -> ... ); 
     List> entries = new ArrayList>(map.entrySet()); Collections.sort(entries, new Comparator>() { public int compare(Map.Entry a, Map.Entry b){ return a.getValue().compareTo(b.getValue()); } }); Map sortedMap = new LinkedHashMap(); for (Map.Entry entry : entries) { sortedMap.put(entry.getKey(), entry.getValue()); } 

    LinkedHashMap просто поддерживает порядок вставки. Если вы хотите сортировать по значению, вам может понадобиться написать собственный comparator .

     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 map=new LinkedHashMap(); 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> entries = new ArrayList>(map.entrySet()); Collections.sort(entries,new CustomizedHashMap()); Map sortedMap = new LinkedHashMap(); for (Map.Entry entry : entries) { sortedMap.put(entry.getKey(), entry.getValue()); System.out.print( sortedMap.put(entry.getKey(), entry.getValue())+" "); } } } class CustomizedHashMap implements Comparator> { @Override public int compare(Entry o1, Entry o2) { // TODO Auto-generated method stub return -o1.getValue().compareTo(o2.getValue()); } } 
    Давайте будем гением компьютера.