【发布时间】:2014-03-25 02:37:55
【问题描述】:
我想使用Arrays.sort 方法按长度对数组months 中的字符串元素进行排序。我被告知here,可以使用 lambda 表达式而不是创建实现 Comparator 的新类。完全一样的方法,但它不起作用。
import java.util.Arrays;
import java.util.Comparator;
public class MainClass {
public static void main(String[] args)
{
String[] months = {"January","February","March","April","May","June","July","August","September","October","December"};
System.out.println(Arrays.toString(months)); //printing before
//neither this works:
Arrays.sort(months,
(a, b) -> Integer.signum(a.length() - b.length())
);
//nor this:
Arrays.sort(months,
(String a, String b) -> { return Integer.signum(a.length() - b.length()) };
);
System.out.println(Arrays.toString(months)); //printing after
}
}
【问题讨论】:
-
“完全一样的方法,但它不起作用。”不,你没有,仔细阅读他们做了什么。您有语法错误。
-
@ZouZou 也许他做到了。我认为 OP 甚至没有使用 Java 8。
标签: java arrays sorting lambda java-8