java - 使用集合对员工姓名列表进行排序

时间:2012-07-24 05:52:17

标签: java list collections

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

我有一个名字(String)列表,例如

Merill, Gopi, kamal, orange, white

我需要做一些事情来使用以下

之类的集合按升序获取列表
Gopi, kamal, Merill, orange, white

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

有人可以告诉我们如何使用集合对其进行排序吗?

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

4 个答案:

答案 0 :(得分:5)

您可以使用:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER)

String.CASE_INSENSITIVE_ORDERComparator<String>课程中的String。请注意,这不是区域设置感知的。

答案 1 :(得分:3)

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

  

任何人都可以告诉我们如何使用collectins对其进行排序?

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

The API for Collections

答案 2 :(得分:1)

Collections.sort(传递列表)将按升序软。如果你想按自己的方式排序,那么你需要使用 Comparator ,但这里没有必要这样做。

答案 3 :(得分: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最后,一些项目,另一项,没关系,这是不同的]

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