有没有一种方法可以使用流来编写这段代码:
for (int i = 0; i < list.size(); i ++) {
if (i % 1000 == 0) {
doSomething();
}
doSomethingElse(list.get(i));
}
您可以使用IntStream
来实现...但你为什么要呢?它看起来与您编写的内容基本相同,但由于intstream
而有一些开销,而这里并不真正需要它。
IntStream.range(0, list.size())
.forEach(i -> {
if (i % 1000 == 0) {
doSomething();
}
doSomethingElse(list.get(i));
});
如果不知道dosomething
或dosomethingelse
做什么,就很难提出更好的建议。也许你想(或者应该?)事先对列表进行分区?
我找不到用当前对象和当前索引调用lamda的forEach方法。 不幸的是,这不是在java8中实现的,因此以下实现是不可能的: 为什么没有为我提供此功能的实用工具? 为什么不在java方法中实现? 有没有我没有找到的提供此功能的好实用工具?
问题内容: 如何在如下所示的循环中访问索引? 我想得到以下输出: 当我使用循环遍历它时,如何访问循环索引(在这种情况下为到)? 问题答案: 使用其他状态变量,例如索引变量(通常在或等语言中使用),被认为是非的。 更好的选择是使用 中都提供的内置函数:
问题内容: 在以下语法不再有效的Swift 3.0中,您将如何表达递减索引循环? 问题答案: 这是一种更简单(更快速)的方法。
我想知道,在这种情况下,我们可以使用增强的for而不是常规的for循环 在这种情况下,我可以使用增强的for吗?
当我试图从网上删除SEC的文件时,奇怪的事情不断发生。我在Python3中执行的web刮取代码在CIK(公司的唯一归档ID)列表中循环。这是代码中断的地方(在代码的早期): 当我前几天运行这个命令时,它工作得很好。今天,这个命令不仅不断抛出错误,而且会发生在循环的不同部分:有时是第1个url,有时是第5h,第8个等等,没有一致性。当我隔离这些URL并对单个实例执行此命令时,从来不会出现错误,这使我
如果我定义一个像这样的分层索引数据框: 内容如下所示: 我知道如何提取与给定列对应的数据。例如。对于列: 如何提取符合以下标准集的数据: , , , column , , 列 和 、、列、以及从开始的所有列 是偶数 (顺便说一句,我做了不止一次rtfm,但我真的觉得难以理解。)