我有一个图书馆返回的java.util.ArrayList。收到对象后,我想将其转换为vavr集合。

我应该使用什么来最大程度地减少计算量?在那之后,我没有明确的使用场景。


首先想到的是使用io.vavr.collection.Iterator.ofAll(x),但这仅在我进行迭代时才是最佳选择。
使用io.vavr.collection.Vectorio.vavr.collection.Array将实例化vavr集合。


我应该怎么用?这些可能称为视图(不是包装器)。关于如何在Java和vavr集合之间以最小的摩擦/运算量进行正确互操作的准则,最终只有在需要时才能使用吗?



更新资料

该问题类似于Lazy view of java.util.Collection in Vavr

最佳答案

我只是从中创建一个vavr ArrayVector而忘记了复制成本。

您是在处理庞大的收藏集还是在紧缩的循环中进行?如果没有,我将不会为复制的成本担心。如果是,则必须考虑一些避免转换的方法,但这取决于实际用例。没有适合所有用例的解决方案。

您还可以创建一个新类型,该新类型包装ArrayList来懒惰地创建vavr IteratorArrayVector,然后选择在用例的基础上调用哪种转换方法,但是我认为这种类型是有限的。

关于java - 什么vavr集合用于包装java.util.ArrayList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60786674/

10-10 20:13