这是一个示例类。 我知道最简单的方法是将成员从基元类型int
更改为对象Integer
并使用流/lambda/sorted,但可能有理由只使用基元类型int
例如空格。 如何使用流 API 按成员startRange
对List<DateRange>
进行排序int
?
List<DateRange> listToBeSorted = new ArrayList<DateRange>();
static private class DateRange
{
private int startRange ;
private int endRange ;
public int getStartRange() {
return startRange;
}
public void setStartRange(int startRange) {
this.startRange = startRange;
}
public int getEndRange() {
return endRange;
}
public void setEndRange(int endRange) {
this.endRange = endRange;
}
}
你可以这样做,
List<DateRange> sortedList = listToBeSorted.stream()
.sorted(Comparator.comparingInt(DateRange::getStartRange))
.collect(Collectors.toList());
我知道您要求一种使用流的方法,但是如果您可以就地对原始列表进行排序,则不需要流。只需使用List.sort
方法:
listToBeSorted.sort(Comparator.comparingInt(DateRange::getStartRange));