Sort based on the values : Map « Collections « Java Tutorial






import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

public class Main {
  public static void main(String[] a) {
    Map<String, String> yourMap = new HashMap<String, String>();
    yourMap.put("1", "one");
    yourMap.put("2", "two");
    yourMap.put("3", "three");

    Map<String, Object> map = new LinkedHashMap<String, Object>();

    List<String> keyList = new ArrayList<String>(yourMap.keySet());
    List<String> valueList = new ArrayList<String>(yourMap.values());
    Set<String> sortedSet = new TreeSet<String>(valueList);
    
    Object[] sortedArray = sortedSet.toArray();
    int size = sortedArray.length;

    for (int i = 0; i < size; i++) {
      map.put(keyList.get(valueList.indexOf(sortedArray[i])), sortedArray[i]);
    }

    Set ref = map.keySet();
    Iterator it = ref.iterator();

    while (it.hasNext()) {
      String i = (String) it.next();
      System.out.println(i);
    }
  }
}








9.25.Map
9.25.1.Creating and storing arrays in a map
9.25.2.Sort based on the values
9.25.3.Get a key from value with an HashMap
9.25.4.Retrieve environment variables (JDK1.5)
9.25.5.Creating a Type-Specific Map: creates a map whose keys are Integer objects and values are String objects.
9.25.6.A map declared to hold objects of a type T can also hold objects that extend from T
9.25.7.A value retrieved from a type-specific collection does not need to be casted
9.25.8.Map techniques.
9.25.9.Create an array containing the keys in a map
9.25.10.Create an array containing the values in a map
9.25.11.Creating a Hash Table
9.25.12.Creating a Map That Retains Order-of-Insertion
9.25.13.Automatically Removing an Unreferenced Element from a Hash Table
9.25.14.Creating a Type-Specific Map [5.0]
9.25.15.Create type specific collections
9.25.16.Convert Properties into Map