我有一个图书馆返回的java.util.ArrayList
。收到对象后,我想将其转换为vavr集合。
我应该使用什么来最大程度地减少计算量?在那之后,我没有明确的使用场景。
首先想到的是使用io.vavr.collection.Iterator.ofAll(x)
,但这仅在我进行迭代时才是最佳选择。
使用io.vavr.collection.Vector
或io.vavr.collection.Array
将实例化vavr集合。
我应该怎么用?这些可能称为视图(不是包装器)。关于如何在Java和vavr集合之间以最小的摩擦/运算量进行正确互操作的准则,最终只有在需要时才能使用吗?
更新资料
该问题类似于Lazy view of java.util.Collection in Vavr
最佳答案
我只是从中创建一个vavr Array
或Vector
而忘记了复制成本。
您是在处理庞大的收藏集还是在紧缩的循环中进行?如果没有,我将不会为复制的成本担心。如果是,则必须考虑一些避免转换的方法,但这取决于实际用例。没有适合所有用例的解决方案。
您还可以创建一个新类型,该新类型包装ArrayList
来懒惰地创建vavr Iterator
,Array
或Vector
,然后选择在用例的基础上调用哪种转换方法,但是我认为这种类型是有限的。
关于java - 什么vavr集合用于包装java.util.ArrayList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60786674/