Я играл с Scala HashMap, и я заметил два разных представления HashMap. Мне было интересно, если кто-то может объяснить разницу:Различные представления Scala HashMap
Map(123 -> 1)
и
{123=1}
Спасибо!
Я играл с Scala HashMap, и я заметил два разных представления HashMap. Мне было интересно, если кто-то может объяснить разницу:Различные представления Scala HashMap
Map(123 -> 1)
и
{123=1}
Спасибо!
Где вы видели: {123=1}
? Это не стандартное представление в Scala, но - это способ, которым Java определяет toString
для своих карт.
val sm = Map(1->1, 2->2) // Map(1 -> 1, 2 -> 2)
val jm = new java.util.HashMap[Int,Int]()
jm.put(1,1)
jm.put(2,2)
jm
// java.util.HashMap[Int,Int] = {1=1, 2=2}
->
- метод, который создает кортежи. Сам по себе он не имеет ничего общего с картами. Так, например, 123 -> 1
возвращает кортеж (123, 1)
. Вы можете попробовать это в РЕПЛ:
scala> 123 -> 1
res1: (Int, Int) = (123,1)
Вы можете создать карту, снабжая кортежей apply
метода object Map
«s, который является то, что вы делаете, когда вы это делаете:
val m = Map(123 -> 1, 456 -> 2)
является такой же, как
val m = Map.apply(123 -> 1, 456 -> 2)
такое же, как
val m = Map.apply((123, 1), (456, 2))
который создает Map
с двумя входами, один с ключом 123
и значением 1
, другой с ключом 456
и значением 2
.
Знаете ли вы 'val m = Map ((123, 1), (456, 2))'? –