在Scala [2.11.6]中,如何从一组有序的Longs中创建一个懒惰的对象流

时间:2015-08-26 19:18:53

标签: scala

简而言之,我想做的是采取一套Longs,任意订购,如(7,3,9,14,123,2)所示,并提供一系列Objects:< / p>

Set(SomeObject(7),SomeObject(3),SomeObject(9),SomeObject(14),SomeObject(123),SomeObject(2))

但是我不希望SomeObject对象初始化,直到我真正要求它们。我希望能够以任意顺序询问它们:就像给我第3个SomeObject(通过索引)或者给我SomeObject映射到Long值为7.所有这些没有触发堆栈初始化。

我理解一个懒惰的流但是我不太确定如何连接第一组长度之间的点(地图会立即像map { x => SomeObject(x)}那样立即执行)并最终得到一个Lazy Stream(请以相同的初始任意顺序!)

其中一个附加规则是,这需要基于Set,因此我永远不会有相同的Long(并且匹配SomeObject)会出现两次。

另外需要处理多个Sets Longs最初被捣碎在一起,同时保持(fifo)顺序和唯一性但我相信这些都是内置在Set的子类中开始用。

0 个答案:

没有答案