首先,有沒有辦法比較Object
類的兩個對象,他們需要有一種方式來獲得比:這是實施界面Comparable
。所以你需要將columns
更改爲HashMap<String, Comparable>
。
之後,你可以一個比較方法添加到RowBean
這樣的:
class RowBean {
private HashMap<String, Comparable> columns;
public int compare(String column, RowBean other) {
return columns.get(column).compareTo(other.columns.get(column));
}
}
最後,排序列表,你可以使用一個化名Comparator
,這種方式:
List<RowBean> list = new ArrayList<>();
final String sortingColumn = "myColumn";
Collections.sort(list, new Comparator<RowBean>() {
@Override
public int compare(RowBean o1, RowBean o2) {
return o1.compare(sortingColumn, o2);
}
});