Java Map Sort sortMap(final Map map, final Comparator> comparator)

Here you can find the source of sortMap(final Map map, final Comparator> comparator)

Description

Sort a map by supplied comparator logic.

License

Open Source License

Return

new instance of contained sorted entries of supplied map.

Declaration

public static <K, V> LinkedHashMap<K, V> sortMap(final Map<K, V> map,
        final Comparator<Map.Entry<K, V>> comparator) 

Method Source Code

//package com.java2s;
/**/*from   w w w. j  a  va2 s.c o  m*/
 * Copyright (c) 2006-2007 Berlin Brown and botnode.com/Berlin Research  All Rights Reserved
 *
 * http://www.opensource.org/licenses/bsd-license.php
    
 * All rights reserved.
    
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
    
 * * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * * Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the following disclaimer in the documentation
 * and/or other materials provided with the distribution.
 * * Neither the name of the Botnode.com (Berlin Brown) nor
 * the names of its contributors may be used to endorse or promote
 * products derived from this software without specific prior written permission.
    
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * Date: 12/15/2009 
 *   
 * Home Page: http://botnode.com/
 * 
 * Contact: Berlin Brown <berlin dot brown at gmail.com>
 * 
 * Simple Java OpenGL
 */

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 {
    /**
     * Sort a map by supplied comparator logic.
     *  
     * @return new instance of {@link LinkedHashMap} contained sorted entries of supplied map.
     * @author Maxim Veksler
     */
    public static <K, V> LinkedHashMap<K, V> sortMap(final Map<K, V> map,
            final Comparator<Map.Entry<K, V>> comparator) {
        // Convert the map into a list of key,value pairs.
        List<Map.Entry<K, V>> mapEntries = new LinkedList<Map.Entry<K, V>>(map.entrySet());

        // Sort the converted list according to supplied comparator.
        Collections.sort(mapEntries, comparator);

        // Build a new ordered map, containing the same entries as the old map.  
        LinkedHashMap<K, V> result = new LinkedHashMap<K, V>(map.size() + (map.size() / 20));
        for (Map.Entry<K, V> entry : mapEntries) {
            // We iterate on the mapEntries list which is sorted by the comparator putting new entries into 
            // the targeted result which is a sorted map. 
            result.put(entry.getKey(), entry.getValue());
        }

        return result;
    }
}

Related

  1. sortHashMapByValuesD(HashMap passedMap)
  2. sortingHelperSessions(String column, Map sortParams)
  3. sortKeysByValue(final Map m)
  4. sortKeysDesc(HashMap> hash)
  5. sortKeyValuePairByValue( Map map)
  6. sortMap(LinkedHashMap map, Comparator> c)
  7. sortMap(Map oldMap)
  8. sortMap(Map oldMap, final boolean asc)
  9. sortMap(Map map, int k)