gpt4 book ai didi

java - java中的字符串排序

转载 作者:行者123 更新时间:2023-12-01 22:55:17 31 4
gpt4 key购买 nike

我有一个List<Bean>其中我的对象值为 String 。这些字符串看起来像这样“This is 1”、“This is 10”、“This is 2”、“This is 11”
我的问题是如何使用 Guava 将它们按 1、2、10、11 的顺序排序?

List<Bean> orderedList = new ArrayList<>();
Function<Bean, String> getNameFunction = new Function<Bean, String>() {
@Override
public String apply(Bean from) {
return from.getShape();
}
};
Ordering<Bean> nameOrdering = Ordering.natural().onResultOf(getNameFunction);
ImmutableSortedSet<Bean> sortedShapes = ImmutableSortedSet.orderedBy(
nameOrdering).addAll(lb).build();
orderedList.addAll(sortedShapes);
return orderedList;

这并不像我希望的那样工作,它会将它们排序为 1, 10, 11, 2
你能帮我吗?
谢谢!

最佳答案

Java 中 String 的自然顺序是按字典顺序排列的。您需要创建或找到一个可以完成您想要的操作的Comparator 实现。如果您自己编写它,则只需创建 Ordering 的子类即可。然后你可以这样做:

Ordering<Bean> nameOrdering = myStringOrdering.onResultOf(getNameFunction);

关于java - java中的字符串排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171643/

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