例如,我有下一个字符串列表:
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允许进行这样的排序吗?
答案 0 :(得分:4)
如果您有一个列表,列出了您想要的顺序,那么Guava提供Ordering.explicit
;您可以按元素的顺序传递,然后将其用作Comparator
进行排序。
答案 1 :(得分:3)
如果存在这样的顺序,那么你应该能够在Comparator
中表达它,即:给定两个元素决定它们的顺序。一旦这样做,您就可以将Comparator
传递给排序方法
Collections.sort(list,comparator);