我正在尝试使用以下代码对节点列表进行排序:
private String sortPropertyName;
private void sortListUsingSortorder(List<MyNode> nodes, String sortOrder) {
BeanComparator comparator = new BeanComparator(sortPropertyName, new Comparator() {
public int compare(Object obj1, Object obj2) {
if ("dsc".equals(sortOrder)) {
return ((Comparable) obj2).compareTo(obj1);
} else {
return ((Comparable) obj1).compareTo(obj2);
}
}
});
Collections.sort(nodes, comparator);
}
}
我想使用 Collator 来实现以下排序顺序:
AaääBbCcUuÜü
类似这样的
Collator collator = Collator.getInstance(Locale.GERMAN);
collator.setStrength(Collator.PRIMARY);
Collections.sort(words, collator);
如何在我的排序代码中使用此 Collator?
最佳答案
委托(delegate)给比较器中的整理器:
BeanComparator comparator = new BeanComparator(sortPropertyName, new Comparator() {
public int compare(Object obj1, Object obj2) {
if ("dsc".equals(sortOrder)) {
return collator.compare(obj2, obj1);
}
else {
return collator.compare(obj1, obj2);
}
}
});
关于java - 使用 BeanComparator 和 Collator 对集合进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13526628/