如何获得所有元素的String表示在Java 8个流
使用Eclipse和Java的版本1.8如何获得所有元素的String表示在Java 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());
但这只会打印流对象,我怎么能访问流中的所有项目并打印出每个?
可以遍历了数据流的要素,并打印出来:
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为了找到一个Stream是否为空,你必须使用一些终端操作(比如'findAny()'或'findFirst()'来关闭Stream,所以我建议你生成一个List('列表
很酷,将不得不看到如何实现列表(),谢谢! –
可能有助于HTTP://计算器.com/questions/14830313 /检索java-util-stream-stream-in-java-8 – NemanjaT
你能为这个问题想出更好的标题吗?例如,“如何打印流中的所有元素?”。谢谢 – OlegTheCat
是的,可以做, –