希望得到一些建议,我创建了一个月份数组,我必须使用比较器按长度顺序对它们进行排序。我创建了两个类:数组列表和比较器,但它没有以正确的顺序返回它们,因为五月应该是显示的第一个月,我不知道我哪里出了问题,如果有人能告诉我,请在下面发布我的代码我已经做了什么以及将来如何避免!非常感谢!!
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));
}
}
最佳答案
您应该通过比较器。
Arrays.sort(data, new Q3());
关于Java 通过使用比较器增加长度来对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100657/