【问题标题】:Using Generic Primitive Arrays in Scala [duplicate]在 Scala 中使用通用原始数组 [重复]
【发布时间】:2016-05-18 18:43:33
【问题描述】:

我最近询问this question 是否可以在 Java 中参数化原始数组的类型。 (基本上,我有一个数组,我想成为 double[]float[] 基于某些参数。我使用的是基元数组而不是包装类数组(Double[]Float[]),因为它们的内存和时间效率更高,尤其是在处理大向量操作时。答案似乎是不,你不能在 Java 中做到这一点。

所以,我的新问题是:我可以在 Scala 中执行此操作吗?我知道原语有点隐藏,并且只在某些操作上装箱......所以如果可以将我的数组参数化为 Double 或 Float,并且编译器确实将它们实现为原语,我如何判断它们是否'被拆箱,或者以其他方式实现的效率低于我在源代码中执行“查找:双倍,替换:浮动”的情况?

【问题讨论】:

标签: java arrays scala generics types


【解决方案1】:

这对你有用吗?

object SpecialisedArray {
  def apply[@specialized(Float, Double) T: ClassTag](size: Int) = new Array[T](size)
}

【讨论】:

  • 谢谢,我试试看。
猜你喜欢
  • 1970-01-01
  • 2019-04-18
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多