我有一个对象列表,例如 List<Object> p
.我想使用对象名称字段按字母顺序对该列表进行排序。对象包含 10 个字段,名称字段是其中之一。
if (list.size() > 0) {
Collections.sort(list, new Comparator<Campaign>() {
@Override
public int compare(final Object object1, final Object object2) {
return String.compare(object1.getName(), object2.getName());
}
} );
}
但是没有什么像 String.compare..?
最佳答案
根据您的代码,它看起来像您的 Comparator
已用 Campaign
参数化.这仅适用于 List<Campaign>
.此外,您正在寻找的方法是 compareTo
.
if (list.size() > 0) {
Collections.sort(list, new Comparator<Campaign>() {
@Override
public int compare(final Campaign object1, final Campaign object2) {
return object1.getName().compareTo(object2.getName());
}
});
}
或者如果您使用的是 Java 1.8
list
.stream()
.sorted((object1, object2) -> object1.getName().compareTo(object2.getName()));
最后一条评论——检查列表大小是没有意义的。排序将适用于空列表。
关于java - 如何使用对象名称字段按字母顺序对 List<Object> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8432581/