Java 将数组索引映射到具有流的列表
我有一个Java 将数组索引映射到具有流的列表,java,java-8,java-stream,Java,Java 8,Java Stream,我有一个布尔[],我想变成列表。列表中的每个项目都是布尔值[]的索引,其中该索引必须为true。 现在,我被以下代码困住了: Stream.of(sieve) .filter(x->x.equals(true)) .mapToInt(???) .collect(toList()); 关于如何实现这一点(当然是使用流)有什么想法吗 您必须使用IntStream::range将索引引入流管道 boolean[] sieve = sieve();
布尔[]
,我想变成列表
。列表中的每个项目都是布尔值[]
的索引,其中该索引必须为true
。
现在,我被以下代码困住了:
Stream.of(sieve)
.filter(x->x.equals(true))
.mapToInt(???)
.collect(toList());
关于如何实现这一点(当然是使用流)有什么想法吗 您必须使用
IntStream::range
将索引引入流
管道
boolean[] sieve = sieve();
int[] numbers = IntStream.range(0, sieve.length).filter(i -> sieve[i]).toArray();
或者,如果您想要一个列表作为结果:
List<Integer> = IntStream.range(0, sieve.length).filter(i -> sieve[i])
.boxed().collect(Collectors.toList());
List=IntStream.range(0,sieve.length).filter(i->sieve[i])
.boxed().collect(collector.toList());