gpt4 book ai didi

Java - 对字符串列表进行排序,根据字符串的包含确定顺序

转载 作者:行者123 更新时间:2023-11-30 06:52:54 25 4
gpt4 key购买 nike

示例:

我们的名单包含 5 个名字:Kevin、Hans、Fritz、Han Solo、Peter

现在我想要所有包含“Han”的名字都在顶部。

所以排序列表看起来像这样:

汉斯、汉索罗、凯文、弗里茨、彼得

到目前为止我尝试了什么:

没有,因为我不知道,但我已经用谷歌搜索了,但没有找到任何东西。

从列表中删除/添加项目不是一个选项,因为我在 CheckListView(ControlsFX 组件)中使用列表,其中每个项目都有一个选中状态,这会丢失。

最佳答案

在 Java 8 中你可以创建 Comparators基于应用于元素的函数。还有一些方法可以反转比较器和链式比较器产生的顺序。

这允许使用子字符串的存在作为主要排序标准和 String 排序作为次要标准来相对简单地创建比较器。请注意,根据您的要求,第二部分 (.thenComparing(Comparator.naturalOrder())) 可能不是必需的:

final String part = "Han";

Comparator<String> comparator = Comparator.<String, Boolean>comparing(s -> s.contains(part)).reversed()
.thenComparing(Comparator.naturalOrder());

使用此Comparator 对项目进行排序的结果是

Han Solo, Hans, Fritz, Kevin, Peter

关于Java - 对字符串列表进行排序,根据字符串的包含确定顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38142250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com