当前位置: 首页 > 知识库问答 >
问题:

将java流转换为Set[重复]

贡建修
2023-03-14

我有一个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());
    }

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

有什么想法吗?

共有2个答案

罗睿识
2023-03-14

您正在尝试使用int原语创建Set,(Arrays.stream"返回一个顺序的IntStream,指定的Array作为其源")和一个Set

public Set<Integer> getNeighbors(int node) {
    assert node >= 0 && node < numNodes : "getNeighbors(): Invalid node parameter given: " + node + ".";
    return Arrays.stream(matrix[node])   //IntStream
                 .filter(n->n>0)   
                 .boxed()                //Convert to Stream<Integer>
                 .collect(Collectors.toSet());
}

戴化
2023-03-14
return Arrays.stream(matrix[node])
             .filter(n -> n > 0)
             .boxed()
             .collect(Collectors.toSet());

我会的。<代码>。boxed()位是相关部分。

 类似资料:
  • 本文向大家介绍Java中将流(Stream)转换为Set,包括了Java中将流(Stream)转换为Set的使用技巧和注意事项,需要的朋友参考一下 首先,设置一个流(Stream)- 现在,声明一个Set并将此流转换为set- 示例 以下是在Java中将Stream转换为Set的程序- 输出结果

  • 似乎没有一种简单而优雅的方法可以将Javascript转换为数组。 感觉不错,但是原型只有。 有人知道将转换为数组的好方法吗?

  • 本文向大家介绍在 Java 中将 List 转换为 Set,包括了在 Java 中将 List 转换为 Set的使用技巧和注意事项,需要的朋友参考一下 假设以下是带有字符串值的列表- 现在,将上面的列表转换为set- 示例 以下是在Java中将List转换为Set的程序- 输出结果

  • 所以我想做的就是打印出字符,而不是ascii值。。。 这是输出: 有人知道怎么解决这个问题吗?

  • 我在处理流时遇到了一些麻烦。本质上,我有一个

  • 我要将转换为: 如果可选选项包含值,则流包含该值。 如果可选项不包含值,则流应为空。