可能重复:
How to properly sort upper and lowercase Strings in Array in Android?
我必须按字母顺序对CLI参数的子集进行排序。因此,要对子集进行排序,请使用以下代码:
// Ignore args[0], sort the rest
Arrays.sort(args, 1, args.length);
为了忽略大小写,我必须使用某种比较器对象。要使用比较器对子集进行排序,可以使用以下方法签名:
Arrays.sort(array, from, to, comp);
可以不在单独的行上创建比较器对象,并将其包含在Arrays.sort()签名中(即整洁且足够容易理解)吗?
答案 0 :(得分:3)
您可以使用built in comparator String.CASE_INSENSITIVE_ORDER
:
Arrays.sort(args, 1, args.length, String.CASE_INSENSITIVE_ORDER);
答案 1 :(得分:2)
您可以定义和初始化实现Comparator
的匿名类,例如
new Comparator<Whatever> {
public int compare(Whatever w1, Whatever w2) {
// implementation
}
// etc...
}
并执行内联,即在Arrays.sort()
方法中。
Arrays.sort(array, from, to, new Comparator<Whatever>{....});
如果比较器实现非常重要,那么缺点是可读性,当然,你不能在其他地方使用那个比较器。但是,如果比较器特别小,它可能有助于提高可读性,因为实现清晰可见。