【发布时间】:2014-04-29 03:41:27
【问题描述】:
String[] arrays = {"AA", "B"};
Arrays.sort(arrays, (s1, s2)->s1.length()-s2.length());
System.out.println(Arrays.toString(arrays));
这是我对 jdk 8 环境的测试。当 s1.length() 大于 s2.length() 时,比较器返回负数,因此 s1 在 s2 前面。但结果是 ["B", "AA"]。怎么了?
当 s1.length() 大于 s2.length() 时,比较器返回一个 正 数,因此 s2 在 s1 前面。所以结果是 ["B", "AA"]。我只是犯了一个愚蠢的错误。
【问题讨论】:
-
您想将字符串数组从最短到最大排序(仅检查长度)?你能解释一下你到底想要什么吗?