yur*_*ura 31 java scala guava scala-collections
有很多共同的概念:
Guava和Scala Collection API中的相同模式.那么区别是什么呢?这两个库是否与模式一致?扩展的可行性是否良好?
所以我想听听那些使用它们的人对这些框架的比较.
Kev*_*ght 26
谷歌番石榴是一个很棒的图书馆,毫无疑问.但是,它是用Java实现的,并且受到以下所有限制的影响:
Guava也必须存在于Java的标准集合库中,因此第三方库很少会公开与番石榴兼容的函数文字或使用特定于guava的集合类型.这会导致您使用的每个第三方库的阻抗不匹配.例如,您通常希望将返回的集合从这些库转换为适当的guava不可变集合 - 尤其是在多线程环境中工作时.
Scala集合的设计可以更好地集成到语言中,您可以在scala标准库中以及通过Scala实现的第三方产品中广泛使用它们.默认情况下,Scala集合也是不可变的,因此您最终会得到更安全的代码,不需要额外的防御包装层.
如果您可以使用Scala,那么它除了集合框架之外还有许多优点.如果你必须使用Java,那么Guava是一个不错的选择,特别是考虑到Scala集合在没有Scala提供的语言功能的情况下使用起来并不是特别容易.
在混合项目中,Guava集合在Scala中完全可用,但该语言还提供了允许您使用Java集合(包括公开相同接口的Guava)的机制,就好像它们是Scala自己的集合一样.
我现在在所有的java项目中使用guava.它为具有相似模式的java集合提供了一个很好的功能触摸.
但是,在java中编写闭包意味着直接定义大量的匿名类,这很冗长乏味.
Scala集合在设计方面仍然优越(由于特性而具有部分实现的级联)和功能.只需实现一小组方法,就可以轻松创建自己的集合并获得scala集合的所有优势.
| 归档时间: |
|
| 查看次数: |
5856 次 |
| 最近记录: |