Java Map Sort sortByValue( Map map, final boolean ascendingValues)

Here you can find the source of sortByValue( Map map, final boolean ascendingValues)

Description

sort By Value

License

Open Source License

Declaration

public static <K extends Comparable<? super K>, V extends Comparable<? super V>> Map<K, V> sortByValue(
            Map<K, V> map, final boolean ascendingValues) 

Method Source Code


//package com.java2s;
//License from project: Open Source License 

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

public class Main {
    public static <K extends Comparable<? super K>, V extends Comparable<? super V>> Map<K, V> sortByValue(
            Map<K, V> map, final boolean ascendingValues) {
        List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<K, V>>() {
            public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
                // If value is equal compare the keys
                int value = (ascendingValues ? o1.getValue().compareTo(o2.getValue())
                        : o2.getValue().compareTo(o1.getValue()));
                if (value == 0) {
                    value = o1.getKey().compareTo(o2.getKey());
                }//from   www .  ja  v a 2  s .  c o m
                return value;
            }
        });

        Map<K, V> result = new LinkedHashMap<K, V>();
        for (Map.Entry<K, V> entry : list) {
            result.put(entry.getKey(), entry.getValue());
        }
        return result;
    }
}

Related

  1. sortByKeys(Map map)
  2. sortByMap(List> lists)
  3. sortByMap(Map map, int size)
  4. sortByValue( final Map map)
  5. sortByValue( Map map)
  6. sortByValue(final Map m)
  7. sortByValue(final Map map)
  8. sortByValue(final Map map)
  9. sortByValue(final Map map, final boolean asc)