使用guava执行lexicographical ordering字符串列表的简单方法是什么? 我是这样做的:
List<String> s = newArrayList(
"susen", "soumen", "dipak", "abhi", "zylo",
"zala", "gautam", "gautom", "shaswasti", "saswati");
List<char[]> ts = newArrayList(transform(s, new Function<String, char[]>() {
@Override
public char[] apply(String input) {
return input.toCharArray();
}
}));
Collections.sort(ts, Chars.lexicographicalComparator());
s = transform(ts, new Function<char[], String>() {
@Override
public String apply(char[] input) {
return String.valueOf(input);
}
});
System.out.println(s);
答案 0 :(得分:8)
如果您不想进行排序,并且想要使用番石榴,请查看Ordering
。
Ordering.natural().sortedCopy(yourInputThatIsIterableAndHasStrings);
或:
Ordering.usingToString().sortedCopy(yourInputThatIsIterableThatYouWantToSortBasedOnToString);
如果您想进行排序,那么您应该使用Collections.sort(...)
。
希望这有帮助。
答案 1 :(得分:7)
String实现Comparable,其自然顺序是字典顺序。 你所要做的就是
Collections.sort(s);
答案 2 :(得分:1)
简单地说(因为String
实现Comparable
):
List<String> s = ...
Collections.sort(s);