我有上面的例子,用 Typescript 写的:
let numbers = [1,2,3,4,5,6];
let indicesOfOddNumbers = numbers
.map((number, index) => {
return {
index, number
}
})
.filter(a => a.number % 2 != 0)
.map(a => a.index);
Java 如何做类似的事情?
最佳答案
一种基于流的解决方案,一步完成过滤和映射:
IntStream.range(0, numbers.length)
.boxed()
.flatMap(index -> numbers[index] % 2 != 0 ? of(index): empty())
.collect(Collectors.toList());
of
和empty
是Stream
的静态成员。它所做的是检查数字是否为奇数,如果是,则返回索引,否则不返回任何内容。好吧,实际上它返回一个流,但它由 flatMap
解析。
关于typescript - Java相当于javascript map方法,有两个参数,第二个是索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51283616/