据我所知,从scala stdlib声明一个地图并不会将它专门化为原始类型。我正在寻找的是不支付装箱/拆箱的价格,但同时有scala地图的界面。一个明显的选择是使用特洛伊地图,但我不相信有scala视图。任何帮助表示赞赏。
答案 0 :(得分:4)
目前这是不可能的,因为界面不是专门的。这意味着无论您在集合本身中执行什么操作,都会将值装箱以便通过界面进行处理。
目前没有特别令人满意的选择;对于那些方便性比性能更重要的情况,使用Trove对Scala集合进行一些隐式转换可能是最好的。
(我已经尝试自己解决这种情况,并且可以证明在编译器中提供当前的专业化支持状态并不容易;专门研究现有的库现在不实用,创建自己的库很难希望未来版本能在这里改进,但现在对你来说没什么用。)