在Android中对Hashmap <string,double =“”>进行排序

时间:2015-06-01 12:29:27

标签: android hashmap

我需要根据存储在其中的值对HashMap进行排序。 HashMap包含作为键的业务名称以及作为值的纬度和经度差异

hashMapLocationDifference = new HashMap<String, Double>();

1 个答案:

答案 0 :(得分:0)

假设Java,你可以像这样排序HashMap

public LinkedHashMap sortHashMapByValuesD(HashMap 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, (Double)val);
               break;
           }

       }

   }
   return sortedMap;
}