gpt4 book ai didi

java - 按长度对字符串的 ArrayList 进行排序

转载 作者:IT老高 更新时间:2023-10-28 20:57:01 25 4
gpt4 key购买 nike

我想按长度排序字符串的 ArrayList,但不只是按数字顺序。

例如,列表中包含以下单词:

cucumber
aeronomical
bacon
tea
telescopic
fantasmagorical

它们需要按长度不同排序为一个特殊的字符串,例如:

intelligent

所以最终列表看起来像这样(括号中的差异):

aeronomical     (0)
telescopic (1)
fantasmagorical (3) - give priority to positive differences? doesn't really matter
cucumber (3)
bacon (6)
tea (8)

最佳答案

使用自定义比较器:

public class MyComparator implements java.util.Comparator<String> {

private int referenceLength;

public MyComparator(String reference) {
super();
this.referenceLength = reference.length();
}

public int compare(String s1, String s2) {
int dist1 = Math.abs(s1.length() - referenceLength);
int dist2 = Math.abs(s2.length() - referenceLength);

return dist1 - dist2;
}
}

然后使用 java.util.Collections.sort(List, Comparator) 对列表进行排序。

关于java - 按长度对字符串的 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7575761/

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