确保按元素中的字段排序的元素列表

ytt*_*rrr 2 collections guava java-8 method-reference

使用Guava可以通过这种方式确保升序排序:

import com.google.common.collect.Ordering;
import io.predictor.dao.ohlcv.OhlcvHm;
import static java.util.stream.Collectors.toList;

assertThat("Ordered by age", Ordering.natural().isOrdered(
    employees.stream().map(Employee::getAge).collect(toList())));
Run Code Online (Sandbox Code Playgroud)

对我来说,Guava(因为它与Java lambdas密切相关)并不能为这种情况提供简单的解决方案.当然,我可以写一些帮助方法并包装它,但也许有人已经在库中完成了它.有一种最简单的方法吗?就像是:

XLibrary.isOrdered(employees, Employee::getAge);
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 5

assertThat("Ordered by age", 
           Ordering.from(Comparator.comparing(Employee::getAge)).isOrdered(list);
Run Code Online (Sandbox Code Playgroud)

要么

assertThat("Ordered by age", 
           Ordering.natural().onResultOf(Employee::getAge).isOrdered(list);
Run Code Online (Sandbox Code Playgroud)