java - 将 Map<> 转换为 Map<String,String>

标签 java list dictionary type-conversion comparator

我有一些这样的代码,我尝试按 sortby 中给出的键对 Map 列表中的值进行排序。代码如下:

final String sortby = "first";
    List<Map> lm = new ArrayList<Map>();
    Map m = new HashMap();
    m.put("id", "eka");
    m.put("first", "ek");
    m.put("last", "a");
    lm.add(m);
    m = new HashMap();
    m.put("id", "adit");
    m.put("first", "adi");
    m.put("last", "t");
    lm.add(m);

    for(Object M : lm){
        System.out.println(M.toString());
    }

    Comparator<Map<String,String>> mapComparator = new Comparator<Map<String,String>>() {
        public int compare(Map<String,String> m1, Map<String,String> m2) {
            return m1.get(sortby).compareTo(m2.get(sortby));
        }
    };

    Collections.sort(lm, mapComparator);

    for(Object M : lm){
        System.out.println(M.toString());
    }

但无法使用比较器进行比较,因为数据类型不兼容。我如何转换Map<>Map<String,String>或任何其他建议,以便比较器可以比较所有数据类型?

最佳答案

class MapComparator<K,V extends Comparable<V>> implements Comparator<Map<K,V>> {

  public int compare(Map<K,V> m1, Map<K,V> m2) {
     return m1.get(sortby).compareTo(m2.get(sortby));
  }

}

关于java - 将 Map<> 转换为 Map<String,String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36495570/

相关文章:

python - 列表分配中的字典导致奇怪的输出

dictionary - 带 tmap 的构面图

Java - 计算总成本和未知数量的项目

Java 比较数组列表中数组中的元素

java - 将应用程序部署到 Google 云

python - Pandas 改变列的顺序

python - 访问嵌套字典中的值

java - 如何在 SWT 文本小部件中显示不可打印的字符

list - 如何比较haskell列表中的内容,看看它们是否部分相同?

python 列表数学索引变量