Monday, 25 November 2013

SortingBasedOnValues In HashMap

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;
import java.util.TreeMap;

public class Test {
public static void main(String[] args) {
HashMap passedMap=new HashMap();
passedMap.put("key1", "ram");
passedMap.put("key2", "abc");
passedMap.put("key3", "sai");
passedMap.put("key4", "bangalore");

System.out.println(passedMap);

   List mapKeys = new ArrayList(passedMap.keySet());
   List mapValues = new ArrayList(passedMap.values());
 
   Collections.sort(mapValues);
   Collections.sort(mapKeys);
 
   LinkedHashMap sortedMap = new LinkedHashMap();

   Iterator valueIt = mapValues.iterator();
 
  while (valueIt.hasNext())
  {
      Object val = valueIt.next();
      Iterator keyIt = mapKeys.iterator();

      while (keyIt.hasNext())
      {
          Object key = keyIt.next();
          String comp1 = passedMap.get(key).toString();
          String comp2 = val.toString();

          if (comp1.equals(comp2))
          {
              passedMap.remove(key);
              mapKeys.remove(key);
              sortedMap.put((String)key, (String)val);
              break;
          }

      }

  }
  System.out.println(sortedMap);
}
}

No comments:

Post a Comment