java将一个函数拆分成几个_java-将拆分器拆分为N个拆分器

在分析几年前同事的Java 7代码时,我发现他实现了一个实用程序,用于遍历数据,可能是并行的.他称其为Range,它扩展了Iterator接口.它有些新方法很难理解:

> int size()将给出范围的确切大小;

> Range split()会将范围分为两部分,最好(尽管不是必须的)将其大小相似(修改当前范围并创建一个新的范围);

> Range [] split(int n)会将范围分为N个子范围,可能会尝试使其尽可能均匀.

>尽管Iterator提供了void remove(),但其子类型仅引发UnsupportedOperationException.

我对自己说的是,这绝对是我们现在可以使用(小尺寸)分隔器执行的操作,从而利用了流API.但是,Java 8中的分隔器无法提供将n分割为多个部分的简便方法.

使用递归函数,我们可以将其分解为具有L个递归级别的n = 2 ^ L个部分,但是当n不是2的幂时,这种方法就不那么简单了,更不用说保持效用函数不自然了只是为了效果.

也许还可以说,只是避免弄乱分隔符,而让流在实际处理过程中进行由fork引起的分隔,但是ForkJoin策略可能不足以完成任务,并且不能保证它将使用我们专门希望用于该工作的线程.实际上,可能会在少数元素上执行繁重的任务.

问题可归结为以下几点:拥有一个至少具有SIZED和SUBSIZED特性的分离器,如何将其分离为精确数量的分离器?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值