List<Rate> rateList =
guestList.stream()
.map(guest -> buildRate(ageRate, guestRate, guest))
.collect(Collectors.toList());
class Rate {
protected int index;
protected AgeRate ageRate;
protected GuestRate guestRate;
protected int age;
}
在上面的代码中,是否可以在guestList
方法中传递buildRate
的索引。我需要在构建Rate
时传递索引,但无法通过Stream
获得索引。
答案 0 :(得分:4)
您尚未提供buildRate
的签名,但我假设您希望首先传递guestList
元素的索引(在{{1}之前) })。您可以使用ageRate
来获取索引,而不必直接处理元素:
IntStream
答案 1 :(得分:3)
如果您的类路径中有Guava,Streams.mapWithIndex
方法(自21.0版以来可用)正是您所需要的:
List<Rate> rateList = Streams.mapWithIndex(
guestList.stream(),
(guest, index) -> buildRate(index, ageRate, guestRate, guest))
.collect(Collectors.toList());