Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
如何获取Java8流中所有元素的字符串表示形式_Java_Java Stream - Fatal编程技术网

如何获取Java8流中所有元素的字符串表示形式

如何获取Java8流中所有元素的字符串表示形式,java,java-stream,Java,Java Stream,使用Eclipse和Java-Version1.8 我有以下代码: public Stream<Ship> remainingShips() { return this.b.getShips().stream().filter(s -> !s.isSunk());. } public Stream<Ship> sunkShips() { return this.b.getShips().stream().fi

使用Eclipse和Java-Version1.8

我有以下代码:

    public Stream<Ship> remainingShips() {
        return this.b.getShips().stream().filter(s -> !s.isSunk());.
    }

    public Stream<Ship> sunkShips() {
        return this.b.getShips().stream().filter(s -> s.isSunk());.
    }

但这将只打印流对象,如何访问流中的所有项目并打印每个项目?

您可以迭代流中的元素并打印它们:

System.out.println("Sunk ships => ");
this.opponent.sunkShips().forEach(System.out::println);
或者,您可以从流生成列表并打印它:

System.out.println("Sunk ships => " + this.opponent.sunkShips().collect(Collectors.toList());

可能会有帮助,你能为这个问题想出更好的标题吗?类似于“如何打印流中的所有元素?”。谢谢你能做的,有唐尼塔克斯!如果我只想在流包含超过0个项目时打印流,该怎么办?Java中的流/过滤器有没有一个好方法可以做到这一点?@AlexMills为了发现流是否为空,您必须使用一些终端操作(例如
findAny()
findFirst()
),这将关闭流。因此,我建议您生成一个列表(
List ships=this.opporter.sunkShips().collect)(Collectors.toList();
)并打印它(如果它不是空的)。当您已经知道您只对
字符串表示感兴趣时,收集到
列表中是没有意义的。您可以使用,例如
.map(Object::toString).collector(Collectors.joining(“,”)
System.out.println("Sunk ships => " + this.opponent.sunkShips().collect(Collectors.toList());