如何使用 Java 8 流按原始 int 成员对对象的 ArrayList 进行排序?



这是一个示例类。 我知道最简单的方法是将成员从基元类型int更改为对象Integer并使用流/lambda/sorted,但可能有理由只使用基元类型int例如空格。 如何使用流 API 按成员startRangeList<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));

最新更新