假设我有一个IntStream
,而我想得到例如某个集合things
中索引在该流中的项目的列表。
我认为这将很简单
IntStream.range(0,10).collect(Collectors.toList(
_i -> things[_i]
))
,但出现类型不兼容(<lambda parameter>
与int)的问题。
<lambda parameter>
无法转换为整数。这让我感到惊讶,因为类似的方法toMap
似乎可以正常工作,如果我向流中添加boxed()
–那么lambda参数的类型是java.lang.Object而不是<lambda parameter>
:
IntStream.range(0,10).boxed().collect(Collectors.toMap(
_i -> things[_i],_i -> 1
))
我正在使用Java 12。
如何在toList
方法中实现类似的行为,或者如果我尝试的方法完全不是一个好主意–为什么?什么是一个好的替代方法?