0

我认为这可能是一个重复的问题。但找不到我的要求的答案。

我有一个名称列表(字符串),例如

Merill, Gopi, kamal, orange, white

我需要做一些事情来使用如下集合按升序获取列表

Gopi, kamal, Merill, orange, white

是否可以按字母顺序获取列表?

谁能告诉如何使用集合对此进行排序?

(请在关闭此问题之前提供解决方案作为重复)

4

4 回答 4

5

你可以使用这个:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER)

String.CASE_INSENSITIVE_ORDER是班上Comparator<String>的。String请注意,这不是区域设置感知的。

于 2012-07-24T05:56:44.697 回答
3

您已经在帖子中提到了解决方案:

谁能告诉如何使用collectins对此进行排序?

使用java.util.Collections.sort(...).

集合的 API

于 2012-07-24T05:53:45.197 回答
1

Collections.sort(pass the list)将按升序排列。如果您想按照自己的方式进行排序,那么您需要使用Comparator但这里不需要这样做。

于 2012-07-24T05:54:09.003 回答
1

我知道您尝试使用 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,没关系,这是不同的]

该数组首先按数字/其他排序,然后是大写字母,然后是小写字母

于 2012-07-24T05:57:29.873 回答