gpt4 book ai didi

java - JAVA 中的逻辑索引

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:33 25 4
gpt4 key购买 nike

如何在 Java 中使用逻辑索引访问数组元素?

Matlab/Octave 相当于我想做的事情:

A = [1 2 3 4 5 6]
logicalarray=[0 1 0 0 0 1];
result= A(logical)

给出 result =[2 6]

如果我在 Java 中有相同的 Alogicalarray。我如何在不使用循环的情况下获得该结果

最佳答案

@Oleg 所说您在 Java 和 @luk2302 中有完全不同的语法提到你可能会使用 Streams

以下片段

int[] a = {1, 2, 3, 4, 5, 6};

// logicalarray=[0 1 0 0 0 1];
// index is zero-based in Java
int[] result = IntStream.of(1, 5)
.map(i -> a[i])
.toArray();

System.out.println("result = " + Arrays.toString(result));

会打印

result = [2, 6]

编辑 如果您需要保留logicalarray,可能的解决方案是

int[] a = {1, 2, 3, 4, 5, 6};
int[] logicalarray = {0, 1, 0, 0, 0, 1};
int[] result = IntStream.range(0, logicalarray.length) // create a stream of array indexes
.filter(i -> logicalarray[i] == 1) // filter the indexes which are 1 in logicalarray
.map(i -> a[i]) // map the related value from array a
.toArray(); // create an array of the values
System.out.println("result = " + Arrays.toString(result));

关于java - JAVA 中的逻辑索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com