java - 将 java Stream 转换为 Set
问题描述
我有一个二维整数数组,以及一个带有指向其中一个行的参数的方法。我想Set
在该行的非零元素上返回 a ,并且我想在没有 for 循环的情况下执行此操作。所以这就是我尝试过的:
public Set<Integer> getNeighbors(int node) {
assert node >= 0 && node < numNodes : "getNeighbors(): Invalid node parameter given: " + node + ".";
return Arrays.stream(matrix[node]).filter(n->n>0).collect(Collectors.toSet());
}
不幸的是,我遇到了一个很难解析的编译时错误:
有任何想法吗?
解决方案
return Arrays.stream(matrix[node])
.filter(n -> n > 0)
.boxed()
.collect(Collectors.toSet());
会做的。该.boxed()
位是相关部分。
推荐阅读
- python - 从一天到一周收缩时间序列数据集
- reactjs - Jest 没有在反应项目中运行
- windows - ListView 内文本框中的输入滞后
- nginx - Nginx:在重写中转义非字母数字字符
- python - 两个带有子列表的列表之间的差异,由每个子列表中的第一个元素决定
- oracle - 从更新语句中获取记录数
- c# - 使用 struct uniform 的显式位置时出现重复位置错误
- reactjs - 如何在 catch 语句中得到正确的错误?
- spring-kafka - 使用事务时每个生产者的不同 key.serializer
- kubernetes - 我们可以在 traefik v2 中为中间件设置优先级吗?