带字符串比较器的java流排序忽略大小写
请问是否有更简洁的方法来编写带字符串比较器的java流排序忽略大小写,java,Java,请问是否有更简洁的方法来编写。然后比较(hotel->hotel.getName().toUpperCase()),我发现了一个字符串。不区分大小写\u顺序,但是如何在hotel.getName()上使用这个比较器呢 更新: 应用@Arnaud Denoyelle的建议 hotels.stream().sorted(Comparator.comparing(Hotel::getCity) .thenComparing(hotel -> hote
。然后比较(hotel->hotel.getName().toUpperCase())
,我发现了一个字符串。不区分大小写\u顺序
,但是如何在hotel.getName()
上使用这个比较器呢
更新:
应用@Arnaud Denoyelle的建议
hotels.stream().sorted(Comparator.comparing(Hotel::getCity)
.thenComparing(hotel -> hotel.getName().toUpperCase())))
.collect(Collectors.toList());
它看起来更好。
字符串。不区分大小写的顺序
是一个比较器
,但您正在尝试比较一些酒店
您可以得到一个比较器,如下所示:
hotels.stream().sorted(Comparator.comparing(Hotel::getCity)
.thenComparing(Hotel::getName, String.CASE_INSENSITIVE_ORDER))
.collect(Collectors.toList());
因此,对于第一个比较标准,代码变为:
hotels.sort(Comparator.comparing(Hotel::getName, String.CASE_INSENSITIVE_ORDER));
您应该为thenComparing链接方法提供另一个比较器,如下所示:
hotels.sort(
Comparator.comparing(Hotel::getCity)
.thenComparing(Hotel::getName, String.CASE_INSENSITIVE_ORDER)
)
好问题。标题应该更准确,以便人们以后可以搜索。我现在什么都想不出来(漫长的工作日:)
hotels.sort(
Comparator.comparing(Hotel::getCity)
.thenComparing(Hotel::getName, String.CASE_INSENSITIVE_ORDER)
)
hotels.stream().sorted(Comparator.comparing(Hotel::getCity)
.thenComparing(Comparator.comparing(Hotel::getName, String.CASE_INSENSITIVE_ORDER)))
.collect(Collectors.toList())