Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数组索引映射到具有流的列表_Java_Java 8_Java Stream - Fatal编程技术网

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());