gpt4 book ai didi

java - 我们可以将特定字母保留在顶部并按字母顺序排列吗?

转载 作者:行者123 更新时间:2023-12-02 00:59:06 25 4
gpt4 key购买 nike

我有一个像这样的数组:

"Turkish 1"
"Indonesian 1"
"Malay 2"
"Indonesian 3"
"Yiddish 1"
"Urdu 2"
"Malay 1"
"Indonesian 2"
"Urdu 1"

我想这样排序:

"Urdu 1"
"Urdu 2"
"Indonesian 1"
"Indonesian 2"
"Indonesian 3"
"Malay 1"
"Malay 2"
"Turkish 1"
"Yiddish 1"

请注意,从“U”开始的项目位于顶部,其余项目按字母顺序排序。如何使用 Java 或 Kotlin 中的某种排序算法来实现此目的?

现在,我只知道循环列表并将从 U 开始的项目放在列表顶部。

另外,如果在 Sqlite 中也可以,请也分享一下。

谢谢。

最佳答案

应用高级排序覆盖的最佳方法是从覆盖条件派生一个整数值,然后首先按该值进行排序。

在 Java 中:

String[] strings = {
"Turkish 1",
"Indonesian 1",
"Malay 2",
"Indonesian 3",
"Yiddish 1",
"Urdu 2",
"Malay 1",
"Indonesian 2",
"Urdu 1" };
Arrays.sort(strings, Comparator.comparingInt((String s) -> s.startsWith("U") ? 0 : 1)
.thenComparing(Comparator.naturalOrder()));
System.out.println(Arrays.toString(strings));

输出

[Urdu 1, Urdu 2, Indonesian 1, Indonesian 2, Indonesian 3, Malay 1, Malay 2, Turkish 1, Yiddish 1]

在 SQL 中:

SELECT description
FROM mytable
ORDER BY CASE WHEN description LIKE 'U%' THEN 0 ELSE 1 END
, description

关于java - 我们可以将特定字母保留在顶部并按字母顺序排列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60929438/

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