Monday, 8 June 2015

Sort Map By Value

//****************************************************************
//* Copyright (c) 2015. All Rights Reserved.
//****************************************************************
package com.sort;

import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

public class MapSortByValue {
    public static void main(final String[] args) {
        final Map<String, Integer> map = new HashMap<String, Integer>();
        map.put("A", 100);
        map.put("B", 200);
        map.put("C", 200);
        map.put("D", 400);
        final ValueComparator comparator = new ValueComparator(map);
        final TreeMap<String, Integer> treeMap =
                new TreeMap<String, Integer>(comparator);
        treeMap.putAll(map);
        System.out.println(treeMap);
    }
}

class ValueComparator implements Comparator<String> {
    public Map<String, Integer> map;

    public ValueComparator(final Map<String, Integer> map) {
        this.map = map;
    }

    @Override
    public int compare(final String object1, final String object2) {
        if (this.map.get(object1) >= this.map.get(object2)) {
            return -1;
        } else {
            return 1;
        }

    }

}


Kindly provide your valuable feedback in comment box.

No comments:

Post a Comment