当我使用
ArrayBuffer
时,我应该使用:val arr = new ArrayBuffer[Int]
但是当我使用 Map
时,应该使用:
val map = Map[Int, Int]()
ArrayBuffer
时,我应该使用:val arr = new ArrayBuffer[Int]
但是当我使用 Map
时,应该使用:
val map = Map[Int, Int]()
Map[T, T]()
而不是new Map[T, T](...)
,您需要了解伴生对象上的apply方法如何工作。Map
的伴生对象应该看起来像这样:object Map {
def apply[K, V](...) = new Map[K,V](...) // Or something like this
}
这个类大概会长成这样:
protected class Map[K, V](...) {
...
}
现在调用Map[String, String](...)
实际上是在调用Map伴生对象的apply
方法。
ArrayBuffer
这里没有伴生对象。因此,您需要通过直接使用构造函数自己创建该类的新实例。