public List<Subcategory> listToSortBySubName(List<Subcategory> list) {
if (list == null || list.size() == 0) {
return null;
}
Map<String, Subcategory> map = new HashMap<String, Subcategory>();
List<String> names = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
String name = list.get(i).getNameI18n().getCn();
names.add(name);
map.put(name, list.get(i));
}
Collections.sort(names, new Comparator<String>() {
Collator collator = Collator.getInstance(Locale.CHINA);
@Override
public int compare(String o1, String o2) {
CollationKey key1 = collator.getCollationKey(o1);
CollationKey key2 = collator.getCollationKey(o2);
return key1.compareTo(key2);
}
});
list.clear();
for (String name : names) {
if (map.containsKey(name)) {
list.add(map.get(name));
}
}
return list;
}
集合对象根据某个字段首字母排序
最新推荐文章于 2021-05-28 03:32:42 发布
本文介绍了一种使用Java实现的对子类别列表按中文名称进行排序的方法。该方法首先将列表转换为映射,并从中提取所有名称,然后使用Collator对这些名称进行排序,最后根据排序后的名称重新构建排序后的子类别列表。
4823

被折叠的 条评论
为什么被折叠?



