以下是我的豆子
Person:
String name;
String age;
String designation;
我已经使用BeanComparator在运行时对列表进行排序,如此
if (sortOrd.equals("asc")) {
Collections.sort(list, new BeanComparator(sortByProperty));
} else if (sortOrd.equals("desc")) {
Collections.sort(list, Collections.reverseOrder(new BeanComparator(
sortByProperty)));
}
如果我想按年龄排序,那么对于输入10,35,100,25,它被排序为10,100,25,35,因为它被存储为String。
有没有办法获取正确的结果?请帮帮我。
答案 0 :(得分:0)
您可以为BeanComparator提供自定义的comperator。创建一个解析为 整数并比较它们。
Collections.sort(list, new BeanComparator(sortByProperty), new Comparator<String>() {
int compare(String s, String s2) {
Integer i = Integer.parseInt(s);
Integer i1 = Integer.parseInt(s2);
return i1 - i;
}
});
类似的东西(未经过测试,在解析之前需要进行一些检查)。