Java如何使用locale对字段进行排序?

Yun*_*nus 2 java lambda java-8

我试图通过具有特定区域设置的字段对列表进行排序.我如何结合以下陈述?

names.stream().sorted(Comparator.comparing(AClass::getName)).collect(Collectors.toList());

Collator coll = Collator.getInstance(new Locale("tr","TR"));
coll.setStrength(Collator.PRIMARY);
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 7

有一个变体Comparator.comparing需要两个参数.第二个参数是比较器,因此您可以将Collator实例作为第二个参数传递:

Collator coll = Collator.getInstance(new Locale("tr","TR"));
coll.setStrength(Collator.PRIMARY);
List<AClass> sorted = names.stream()
                           .sorted(Comparator.comparing(AClass::getName,coll))
                           .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)