如何按照我预定义的顺序对集合进行排序?

问题描述 投票:0回答:2

例如,我有下一个字符串列表:

List<String> s = newArrayList("string", "someString", "anotherStr", "yetAnotherString", "Something");

我需要以特殊的方式对其进行排序,例如: YetAnotherString, someString, anotherStr, string, Something

所以没有字母顺序或字典顺序,在伪代码中它会这样:

if (el == yetAnotherString)
{
 set order 1;
}
else if (someString)
{
 set order 2;
} ....

java Collections 或 guava 允许进行这样的排序吗?

java sorting collections guava
2个回答
4
投票

如果存在这样的顺序,那么您应该能够用

Comparator
来表达它,即:给定两个元素决定它们的顺序。完成此操作后,您可以将
Comparator
传递给
Collections.sort
方法。

Collections.sort(list,comparator);

4
投票

如果你有一个列表,其中包含你想要的元素的顺序,那么 Guava 提供了

Ordering.explicit
;您可以传递元素的顺序,然后将其用作
Comparator
进行排序。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.