【问题标题】:How to return names in alphabetical order?如何按字母顺序返回名称?
【发布时间】:2010-12-08 13:11:57
【问题描述】:

我有两个用户名。

我想比较它们并按字母顺序显示它们。

我尝试了 compareTo 方法,但它只返回一个 int。

编辑:找到答案!再次感谢大家!

【问题讨论】:

  • 那是两个的名字吗?如果是,则根据比较结果,您可以按顺序显示它们。
  • 你会怎么做?比数组更简单?

标签: java return


【解决方案1】:

如果您只有两个名称,请使用 compareTo() 方法。 如果您有很多,请使用其他解决方案(将它们添加到列表并对其进行排序)。

总是喜欢“Arrays.asList(strArray);”到“new ArrayList()”,当不可能时,为了性能,在构造函数上指定列表大小。

【讨论】:

    【解决方案2】:

    你说:“我必须命名”——假设你的意思是“我有两个名字”...

    如果您有两个字符串,那么您只有两种可能的方式可以返回它们。可以是 A、B 或 B、A。这两个字符串的排序方式只有三种。

    要么:

    • 第一个字符串在第二个字符串之前(按原样返回)
    • 第二个字符串在第一个字符串之前(交换它们,然后返回)
    • 两个字符串相等(按任意顺序返回,没关系)

    事实证明,根据the Java documentationString.compareTo() 方法实际上为您提供了一个映射到这三种可能状态的值:

    结果是一个整数,如果 这个 String 对象按字典顺序 在参数字符串之前。这 结果是一个整数,如果这 按字典顺序排列的字符串对象 跟随参数字符串。这 如果字符串是,则结果为 zero 平等的; compareTo 准确返回 0 当 equals(Object) 方法将 返回真。

    【讨论】:

    • 哦呵呵,更简单的方法!是的,抱歉错字谢谢它的工作!
    【解决方案3】:

    Here's an example 为您服务,假设您不止有两个名字,但它也适用:

       // Create a list
        String[] strArray = new String[] {"z", "a", "C"};
        List list = Arrays.asList(strArray);
    
        // Sort
        Collections.sort(list);
        // C, a, z
    
        // Case-insensitive sort
        Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
        // a, C, z
    
        // Reverse-order sort
        Collections.sort(list, Collections.reverseOrder());
        // z, a, C
    
        // Case-insensitive reverse-order sort
        Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
        Collections.reverse(list);
        // z, C, a
    

    【讨论】:

      【解决方案4】:

      您需要对它们进行排序(compareTo 方法为排序算法提供了它需要知道什么在什么之前发生的信息)。要对它们进行排序,您需要将它们放在 List 中,然后使用 Collections.sort() 方法。

      【讨论】:

        【解决方案5】:

        Java 中内置了一些排序方法。尝试将名称放入数组并使用Array sort

        【讨论】:

          【解决方案6】:

          最简单的方法是将它们存储在诸如TreeSet 这样的数据结构中,该结构固有地对其内容进行排序(通常通过在内部调用compareTo)。

          否则还有Collections.sort静态方法对现有List进行排序。

          【讨论】:

          • 如果你有重复的名字,他们会被 TreeSet 减少到只有一个。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多