我有一个名为calculate的方法,它需要很长的时间才能完成。所以我决定将我的信息列表对象部分地发送到这个方法。我怎样才能迭代每n个元素呢?
public static void main(String [] args){
Map<String, Long> info....; //my info Map
//I want to call method like
for(int i = 0; i<info.size(); i+=5)
calculate(info.submap(i,i+5));
}
public static boolean calculate(Map<String, Long> info){
//Some calculations
}
3条答案
按热度按时间zbdgwd5y1#
您可以使用以下代码
nom7f22z2#
听起来您要做的似乎是为
Map<String, Long> info
示例表示的数据实现某种batch processing,然后可以为这些批处理创建generator作为Stream
:这在某种程度上是Stream.flatMap(...)
系列方法的逆过程,但是,具有讽刺意味的是,there doesn't seem to be any idiomatic functional way of doing this等方法可能需要您自己以命令式方式创建批处理-例如:使用此方法,可以创建一个批量Map数据生成器,然后将其提供给
calculate(...)
函数(尽管签名略有不同):niwlg2el3#
在集合上循环n次,并获取所需的项的范围。