我有一个对象列表,例如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()));
最后一点评论——检查列表大小是没有意义的。排序适用于空列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)