Closed
Description
It is based on equals
rather than BoxesRuntime.equals
.
@SerialVersionUID(3L)
final class ofRef[T <: AnyRef](val unsafeArray: Array[T]) extends ArraySeq[T] {
lazy val elemTag = ClassTag[T](unsafeArray.getClass.getComponentType)
def length: Int = unsafeArray.length
@throws[ArrayIndexOutOfBoundsException]
def apply(i: Int): T = unsafeArray(i)
override def hashCode = MurmurHash3.arrayHash(unsafeArray, MurmurHash3.seqSeed)
override def equals(that: Any) = that match {
case that: ofRef[_] => Arrays.equals(unsafeArray.asInstanceOf[Array[AnyRef]], that.unsafeArray.asInstanceOf[Array[AnyRef]])
case _ => super.equals(that)
}
}