在HashMaps的数组列表中排序

eld*_*dho 1 java sorting collections

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

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

public class RowBean {
    private HashMap<String, Object> columns;
}
Run Code Online (Sandbox Code Playgroud)

我需要rowBeans根据HashMap中其中一个键的值进行排序columns.使用Java执行此操作的最有效方法是什么?

cyo*_*yon 6

制作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);
     }
}
Run Code Online (Sandbox Code Playgroud)

一旦你RowBean是一个Comparable你可以使用:

 Collections.sort(rowBeans);
Run Code Online (Sandbox Code Playgroud)