将java Stream转换为Set

Jas*_*son 1 java lambda java-stream

我有一个2-D的int数组,以及一个带有指向其中一行的参数的方法.我想Set在该行的元素上返回非零值,并且我想在没有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());
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到一个编译时错误,有点难以解析:

来自我的IDE的屏幕截图

有任何想法吗?

rzw*_*oot 5

return Arrays.stream(matrix[node])
             .filter(n -> n > 0)
             .boxed()
             .collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

会做的.该.boxed()位是相关部分.