我有一个数据结构,如下所示:

public class VResultSetBean {
   private ArrayList<RowBean> rowBeans;
}

public class RowBean {
    private HashMap<String, Object> columns;
}


我需要基于HashMap rowBeans中的键之一的值对columns进行排序。用Java做到这一点的最有效方法是什么?

最佳答案

使RowBean实现Comparable并实现compareTo方法以提取该键的值,并使用它来确定比较结果。

public class RowBean implements Comparable<RowBean> {

     private HashMap<String, Object> columns;

     @Override
     public int compareTo(RowBean other) {
          Object valOther = other.columns.get(...);
          Object valMine = columns.get(...);
          return comparison(valOther, valMine);
     }
}


一旦RowBeanComparable,您可以使用以下方式进行排序:

 Collections.sort(rowBeans);

关于java - 在HashMap的数组列表中排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18334371/

10-10 03:05