【发布时间】:2020-07-09 21:21:34
【问题描述】:
如果值是0 0 4 2 1 7,我在对值进行排序时尝试忽略零值,它应该首先是1 2 4 7 0 0
List<PersonItem> collect = personLists.stream()
.sorted((p1,p2) ->
(p1.getCelebrityWeighting() == null ? 0 : p1.getCelebrityWeighting())
- (p2.getCelebrityWeighting() == null ? 0 : p2.getCelebrityWeighting()))
.collect(Collectors.toList());
【问题讨论】:
-
如果您有
null值,最好使用Comparator.nullsLast进行比较,而不是将它们映射到0作为值。 -
您想在排序列表的末尾看到 0/null 值,不是吗?这个比较器对你有用吗? .sorted((p1,p2) -> { if (p1 == null || p1.w() == 0) return 1; // if (p2 == null || p2.w() == 0) return -1; // return p1.w() - p2.w(); }) 假设 pw() 是 p.getCelebrityWeighting()
-
这个问题不清楚。请先为您的问题添加更多详细信息。这也可能有帮助:stackoverflow.com/help/minimal-reproducible-example
标签: java spring lambda java-8 comparator