2015-06-01 49 views
2

我需要根据存储在其中的值对我的HashMap进行排序。 HashMap中包含业务名称为键和纬度的差异,经度值在Android中排序HashMap <String,Double>

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

+0

HashMap具有无概念的知识订购。你需要另一种Collection – Blackbelt

+0

哪种类型的收藏? @Blackbelt –

+0

用于排序目的使用List而不是Map。 –

回答

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; 
} 
相关问题