【发布时间】:2015-04-12 20:42:48
【问题描述】:
我正在尝试使用 collection.sort() 方法对两个字符串进行排序,但我在理解实现的逻辑时遇到了问题。这是我到目前为止所拥有的。我的实施有什么问题吗? 注意:我想按字母顺序对它们进行排序: “苹果”>“橙色”
Collections.sort(mailbox.getMessages() , (String a, String b) -> {
if (String.valueOf(a.charAt(0)) > String.valueOf(b.charAt(0))) {
return -1;
}
else if (String.valueOf(a.charAt(0)) <
String.valueOf(b.charAt(0))) {
return 1;
}
else {
return 0;
}
});
【问题讨论】:
-
是的,有问题。尝试编译它,看看它说了什么,
-
我能看到的唯一问题是
a或b是否有可能成为null。您还应该只在字符之间执行 1 次比较并存储该结果。 -
@Obicere:事实上它只对第一个字符进行排序。一般来说,字符串是按字典顺序排序的。
-
为什么不使用普通的
Collections.sort()方法呢?无论如何,这将按字典顺序对字符串进行排序。见docs.oracle.com/javase/7/docs/api/java/lang/… -
编译后出现“错误的操作数类型错误”。我认为可以使用 ">" 、 "