Tri LinkedHashMap
comment trier un LinkedHashMap en fonction de ses valeurs étant donné que le LinkedHashMap contient de la chaîne et un nombre entier. Donc j'ai besoin de le trier basé sur les valeurs qui sont des entiers. Merci beaucoup
37
                
            
                demandé sur
                Mike Causer
                2012-08-29 22:35:49
            
        4 réponses
c'est maintenant un peu plus facile avec Java 8 streams: vous n'avez pas besoin de la carte intermédiaire pour trier:
map.entrySet().stream()
    .sorted(Map.Entry.comparingByValue())
    .forEach(entry -> ... );
30
	                    
	                
	                    répondu
	                    sprinter
	                    2015-01-09 12:15:09
	                
	            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());
}
68
	                    
	                
	                    répondu
	                    Louis Wasserman
	                    2012-08-29 18:40:19
	                
	               LinkedHashMap  maintient l'ordre d'insertion. Si vous souhaitez trier basés sur la valeur, vous pouvez avoir besoin d'écrire votre propre  comparator  .  
4
	                    
	                
	                    répondu
	                    kosa
	                    2012-08-29 18:37:11
	                
	            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());
  }
}
2
	                    
	                
	                    répondu
	                    Sachindra N. Pandey
	                    2017-09-04 10:14:43