【问题标题】:Java sorting an array of strings by increasing length using a comparator [closed]Java通过使用比较器增加长度来对字符串数组进行排序[关闭]
【发布时间】:2014-05-30 19:22:39
【问题描述】:

不胜感激,我已经创建了一个月份数组,我必须使用比较器按长度顺序对其进行排序。我已经创建了数组列表和比较器两个类,但它没有以正确的顺序返回它们,因为 5 月应该是显示的第一个月,我不知道我哪里出错了,如果有人能告诉我,请在下面发布我的代码我做了什么以及将来如何避免!非常感谢!!

import java.util.*;

public class Q3 implements Comparator.java {
//creating array of months to be sorted in order of length
public int compare(String x, String y) {
    if (x == null)
        return y==null ? 0 : -1;
    else if (y == null)
        return +1;
    else {
        int lenx = x.length();
        int leny = y.length();
        if (lenx == leny)
            return x.compareTo(y);
        else
            return lenx > leny ? -1 : +1;
    }
}

    public static void main(String[] args) {
    String[] data = {
        "January",
        "February",
        "March",
        "April",
        "May",
        "June",

    };
    Arrays.sort(data);
    System.out.println(Arrays.toString(data));
}

}

【问题讨论】:

  • 该代码甚至无法编译。
  • 你没有使用比较器。

标签: java arrays string sorting comparator


【解决方案1】:

你应该通过比较器。

Arrays.sort(data, new Q3());

【讨论】:

  • 看起来Q3 会从最长到最短排序。所以最后的比较需要切换一下。
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
相关资源
最近更新 更多