【问题标题】:java - sorting the list of employee names using collectionsjava - 使用集合对员工姓名列表进行排序
【发布时间】:2012-07-24 05:52:16
【问题描述】:

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

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

Merill, Gopi, kamal, orange, white

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

Gopi, kamal, Merill, orange, white

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

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

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

【问题讨论】:

  • 如果关闭为重复,您可以在重复的问题中找到答案。

标签: java list collections


【解决方案1】:

你可以用这个:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER)

String.CASE_INSENSITIVE_ORDERComparator<String> 类中的 String。请注意,这不支持区域设置。

【讨论】:

    【解决方案2】:

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

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

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

    The API for Collections.

    【讨论】:

      【解决方案3】:

      我知道您尝试使用 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, another item,没关系,这不一样]

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

      【讨论】:

      • 嗨,Alex,是否可以按字母顺序(a、b、c、d...)排序?
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2015-07-04
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        相关资源
        最近更新 更多