【问题标题】:How to sort a map of list having key-value pairs?如何对具有键值对的列表映射进行排序?
【发布时间】:2011-03-09 10:36:06
【问题描述】:

我正在获取特定键的映射中的结果列表。如何排序?

提前致谢。

【问题讨论】:

  • @user:这些结果是什么,我的意思是对象类型。

标签: java sorting collections


【解决方案1】:

如果您想对键进行排序,请选择TreeMap


来自您的陈述:

我正在获取特定键的映射中的结果列表。如何排序?

看来你的地图是

Map<String,List<SomeEntity>> map;

您可以从key 获取对象的List 然后使用

Collections.sort(list, your_custom_implementation_of_comparator)

public class CustomComparator implements Comparator<SomeEntity> {
    @Override
    public int compare(SomeEntity o1, SomeEntity o2) {
        //logic goes here
    }
}

【讨论】:

    【解决方案2】:

    如果您询问如何对列表进行排序,请参阅Collections.sort(List)

    【讨论】:

      【解决方案3】:
      Map<String, String> mapie = new Hashtable<String, String>();
              mapie.put("D", "the letter D");
              mapie.put("C", "the letter C");
              mapie.put("A", "the letter A");
              mapie.put("B", "the letter B");
      
              Set<String> keys = mapie.keySet();
      
              List<String> keyColList = new ArrayList<String>();
              keyColList.addAll(keys);
      
                  **You can also make use of a Comparator if you are using a custom object.**
              Collections.sort(keyColList);
      
              for(String keyIndex:keyColList){
                  System.out.println("Key: "+ keyIndex + " has value: "+mapie.get(keyIndex));
              }
      

      【讨论】:

      • 如何在for循环中打印单个keyIndex,您能否完成该示例以便参考。
      • 将 TODO 替换为 System.out.println()
      【解决方案4】:

      进行目视检查的最简单方法是使用您的地图初始化 TreeMap,然后将其打印出来。

      System.out.println("map: " + new TreeMap(myMap));
      

      【讨论】:

        猜你喜欢
        • 2021-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-07
        • 2011-02-11
        • 1970-01-01
        • 2017-11-15
        相关资源
        最近更新 更多