如何按照我的预定义顺序对集合进行排序?
How to sort collection in my pre-defined order?
例如,我有下一个字符串列表:
List<String> s = newArrayList("string", "someString", "anotherStr", "yetAnotherString", "Something");
我需要用特殊的方式排序,例如:
yetAnotherString, someString, anotherStr, 字符串, Something
所以没有字母顺序或字典顺序,在伪代码中它会像:
if (el == yetAnotherString)
{
set order 1;
}
else if (someString)
{
set order 2;
} ....
java 集合或 guava 允许进行这样的排序吗?
如果存在这样的顺序,那么您应该可以用 Comparator
来表达它,即:给定两个元素来决定它们的顺序。一旦这样做,您就可以将 Comparator
传递给排序方法
Collections.sort(list,comparator);
如果你有一个列表,其中包含你想要的元素的顺序,那么 Guava 提供了 Ordering.explicit
;您可以传递元素的顺序,然后将其用作 Comparator
进行排序。
例如,我有下一个字符串列表:
List<String> s = newArrayList("string", "someString", "anotherStr", "yetAnotherString", "Something");
我需要用特殊的方式排序,例如: yetAnotherString, someString, anotherStr, 字符串, Something
所以没有字母顺序或字典顺序,在伪代码中它会像:
if (el == yetAnotherString)
{
set order 1;
}
else if (someString)
{
set order 2;
} ....
java 集合或 guava 允许进行这样的排序吗?
如果存在这样的顺序,那么您应该可以用 Comparator
来表达它,即:给定两个元素来决定它们的顺序。一旦这样做,您就可以将 Comparator
传递给排序方法
Collections.sort(list,comparator);
如果你有一个列表,其中包含你想要的元素的顺序,那么 Guava 提供了 Ordering.explicit
;您可以传递元素的顺序,然后将其用作 Comparator
进行排序。