java创建计数器变量_用lambda表达式java实现计数变量

本文探讨了如何在Java中使用Lambda表达式为文件的每一行创建带有行号的Pair对象。通过示例代码,展示了AtomicInteger计数器的使用,以及在并行流中可能遇到的顺序问题,并提供了替代的解决方案。
摘要由CSDN通过智能技术生成

我有一个关于lambda表达式的问题.我有一个类Pair,它应该包含一个String和一个int.

Pair从文件中获取String.

并且int表示行号.

到目前为止我有这个:

Stream lineNumbers = Files.lines(Paths.get(fileName));

List posStream = Stream.iterate(0, x -> x + 1).limit(lineNumbers.count()).collect(Collectors.toList());

lineNumbers.close();

Stream line = Files.lines(Paths.get(fileName));

List pairs = line.map((f) -> new Pair<>(f,1))

.collect(Collectors.toList());

pairs.forEach(f -> System.out.println(f.toString()));

line.close();

我现在如何输入文件编号?

是否有lambda表达式可以执行此操作?或者我还需要其他东西吗?

解决方法:

有几种方法可以做到这一点. Saloparenator’s answer建议的计数器技术可以如下实现,使用AtomicInteger作为可变计数器对象并假设明显的Pair类:

List getPairs1() throws IOException {

AtomicInteger counter = new AtomicInteger(0);

try (Stream lines = Files.line

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值