ordenar ejemplo java linkedhashmap

ordenar - linkedhashmap java ejemplo



Clasificando LinkedHashMap (4)

¿Cómo puedo ordenar un LinkedHashMap en función de sus valores dado que LinkedHashMap contiene String e Integer? Así que tengo que ordenarlo en función de los valores que son enteros. Muchas gracias


Esto ahora es bastante más fácil con las secuencias Java 8: no necesita el mapa intermedio para ordenar:

map.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .forEach(entry -> ... );


LinkedHashMap solo mantiene el orden de inserción. Si desea ordenar según el valor, es posible que deba escribir su propio 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()); }


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()); } }