我试图用lambda和自定义比较器类“virussorter”对按名称排序的对象列表进行排序,但它什么也没做,我不知道为什么是主代码
List<Virus> tmpVir = new ArrayList<>(OuterClass.getSvi_virusi());
tmpVir.stream()
.sorted(new VirusSorter())
.forEach(System.out::println);
比较器等级:
class VirusSorter implements Comparator<Virus> {
@Override
public int compare(Virus o1, Virus o2) {
if(o1.getNaziv().compareTo(o2.getNaziv().toUpperCase()) == 1)
{
return 1;
}
else if(o1.getNaziv().compareTo(o2.getNaziv().toUpperCase()) == -1)
{
return -1;
}
else
return 0;
}
}
1条答案
按热度按时间mklgxw1f1#
比较输入为
o2.getNaziv().toUpperCase()
以及o1.getNaziv()
(没有一个使其大写的调用),所以它永远不会比较like和like。试试这样的