我认为这可能是一个重复的问题。但找不到我的要求的答案。
我有一个名称列表(字符串),例如
Merill, Gopi, kamal, orange, white
我需要做一些事情来使用如下集合按升序获取列表
Gopi, kamal, Merill, orange, white
是否可以按字母顺序获取列表?
谁能告诉如何使用集合对此进行排序?
(请在关闭此问题之前提供解决方案作为重复)
我认为这可能是一个重复的问题。但找不到我的要求的答案。
我有一个名称列表(字符串),例如
Merill, Gopi, kamal, orange, white
我需要做一些事情来使用如下集合按升序获取列表
Gopi, kamal, Merill, orange, white
是否可以按字母顺序获取列表?
谁能告诉如何使用集合对此进行排序?
(请在关闭此问题之前提供解决方案作为重复)
你可以使用这个:
Collections.sort(list, String.CASE_INSENSITIVE_ORDER)
String.CASE_INSENSITIVE_ORDER
是班上Comparator<String>
的。String
请注意,这不是区域设置感知的。
Collections.sort(pass the list)将按升序排列。如果您想按照自己的方式进行排序,那么您需要使用Comparator但这里不需要这样做。
我知道您尝试使用 Collections 对其进行排序,但这是一种简单的方法:
public static void main(String[] args) throws ParseException {
String[] values = new String[] {"Some item", "another item", "1 last more", "nevermind", "this is different"};
System.out.println("Before: " + Arrays.toString(values));
Arrays.sort(values, new Comparator<String>() {
@Override
public int compare(String arg0, String arg1) {
return arg0.compareTo(arg1);
}
});
System.out.println("After: " + Arrays.toString(values));
}
这是输出:
之前:【某项,另一项,最后1个,没关系,这个不一样】
之后:[1 last more,Some item,另一个 item,没关系,这是不同的]
该数组首先按数字/其他排序,然后是大写字母,然后是小写字母