关于集合内部排序,采用 comparator方法做:
1.按属性数字大小排序:
点击查看代码
taskBoxs.sort(new Comparator<TCComponent>() {
@Override
public int compare(TCComponent o1, TCComponent o2) {
// TODO 自动生成的方法存根
int task1 = 1;
try {
task1 = Integer.parseInt(o1.getProperty("new_tasks_count").toString());
System.out.println(task1);
} catch (NumberFormatException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (TCException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
int task2 = 2;
try {
task2 = Integer.parseInt(o2.getProperty("new_tasks_count").toString());
System.out.println(task2);
} catch (NumberFormatException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (TCException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return task2 - task1;
}
});
以上为常见的排序方式,根据对象里的各种属性进行排序即可,不再赘述。
重点:
本次遇到问题:对象属性name为人名,需要按照拼音排序。
解决方式:
点击查看代码
Collections.sort(taskBoxs,(o1, o2) -> {
try {
return Collator.getInstance(Locale.CHINA).compare(o1.getProperty("object_string").toString(),
o2.getProperty("object_string").toString());
} catch (TCException e1) {
// TODO 自动生成的 catch 块
e1.printStackTrace();
}
return 0;
});