【问题标题】:Sort Hashmap<String, Double> in Android在 Android 中排序 Hashmap<String, Double>
【发布时间】:2015-06-01 12:29:27
【问题描述】:

我需要根据存储在其中的值对 HashMap 进行排序。 HashMap 包含商家名称作为键,经纬度差作为值

hashMapLocationDifference = new HashMap&lt;String, Double&gt;();

【问题讨论】:

  • HashMap 不知道顺序的概念。你需要另一种类型的集合
  • 哪种类型的集合?? @黑带
  • 为了排序,使用 List 而不是 Map。
  • 好的,但我想根据键和值对数据进行排序,所以如何使用列表而不是映射? @AnandSingh

标签: android hashmap


【解决方案1】:

假设使用 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 2015-03-20
    • 1970-01-01
    • 2017-06-01
    • 2018-01-19
    • 2021-02-21
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多