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

Stream.Foreach中的多行代码

狄飞尘
2023-03-14
String fileName = "dataset/ANC-all-count.txt";
Integer i=0;
//read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(fileName), StandardCharsets.ISO_8859_1)) {

    stream.forEach(System.out::println);
    i++;

} catch (IOException e) {
    e.printStackTrace();
}
System.out.println("count is : "+i);
stream.forEach(System.out::println);
stream.forEach(System.out::println; i++);

共有1个答案

燕寒
2023-03-14

在这里你应该问两件完全不同的事情:

a)如何在stream.foreach()中放置多行代码?

b)如何计算流中的行数

class Counter { // wrapper class
    private int count;
    public int getCount() { return count; }
    public void increaseCount() { count++; }
}

后来呢

Counter counter = new Counter();
lines.stream().forEach( e -> {
    System.out.println(e);
    counter.increaseCounter(); // or i++; if you decided i is worth being a field
} );

另一种方法是在方法中隐藏多行:

class Counter { // wrapper class
    private int count;
    public int getCount() { return count; }
    public void increaseCount( Object o ) {
        System.out.println(o);
        count++;
    }
}

后来呢

Counter counter = new Counter();
lines.stream().forEach( counter::increaseCount );
Counter counter = new Counter();
lines.stream().forEach( e -> counter.increaseCount(e) );
 类似资料:
  • 在使用流进行聚合时,Brian Goetz将使用stream.collect()填充集合与使用stream.foreach()进行相同的操作进行了比较,其中有以下两个片段: 根据我的理解,只有在流是并行的情况下,多个线程才能在forEach()中工作。但是,在给出的示例中,forEach()是在一个顺序流上操作的(没有调用parallelStream())。 那么,是forEach()总是并行工作

  • 是否可以像在Sublime文本中那样启用多行编辑? 例如,按Ctrl可放置额外的光标插入符号,并可一次在文档的多个位置上写入/删除。

  • 我想在lambda函数中使用局部变量,但我得到错误:请参见1。和2。代码中的点。

  • 问题内容: 我有一个小的代码示例,我想在方法的Javadoc注释中包括它。 问题是代码示例显示在Javadoc中,没有换行符,很难阅读。 我猜我认为代码标签可以处理换行符是错误的。格式化Javadoc注释中的代码示例的最佳方法是什么? 问题答案: 除了已经提到的标签之外,您还应该使用JavaDoc注释,当涉及到HTML实体问题(尤其是泛型)时,这将使工作变得更加轻松,例如: 将给出正确的HTML输

  • 问题内容: 我试图加快我的代码的速度,瓶颈似乎是通过ODBC从外部Access到Jet MDB的单独插入语句。我需要一次插入100行,并且必须重复多次。 是否可以使用SQL代码在表中插入多行?这是我尝试过的一些方法,但是它们都不起作用。有什么建议? 问题答案: 我在R(我正在使用的软件)中找到了一个优雅的解决方案。RODBC软件包具有函数sqlSave,该函数允许一次将整个data.frame追加

  • 问题内容: JavaScript中是否有一个字符可以分解一行代码,以便即使换行也可以将其读取为连续代码? 就像是.... 问题答案: 在您的示例中,您可以将字符串分成两部分: 或者,当是字符串(如您的情况)时,您可以按照@Gumbo的建议使用反斜杠: 请注意,这种反斜杠方法不一定是首选方法,并且可能不受普遍支持(我很难找到与此有关的硬数据)。这是不是在ECMA5.1规范。 当使用其他代码(不在引号