एक scala.collection.mutable.Map में एक तत्व जोड़ने के लिए वाक्यविन्यास क्या है?
यहाँ कुछ असफल प्रयास हैं:
val map = scala.collection.mutable.Map
map("mykey") = "myval"
map += "mykey" -> "myval"
map.put("mykey","myval")
एक scala.collection.mutable.Map में एक तत्व जोड़ने के लिए वाक्यविन्यास क्या है?
यहाँ कुछ असफल प्रयास हैं:
val map = scala.collection.mutable.Map
map("mykey") = "myval"
map += "mykey" -> "myval"
map.put("mykey","myval")
जवाबों:
मुद्दा यह है कि आपके कोड की पहली पंक्ति वह नहीं है जिसकी आपने अपेक्षा की थी।
आपको उपयोग करना चाहिए:
val map = scala.collection.mutable.Map[A,B]()
आपके पास आइटम जोड़ने के लिए कई समकक्ष विकल्प हैं:
scala> val map = scala.collection.mutable.Map[String,String]()
map: scala.collection.mutable.Map[String,String] = Map()
scala> map("k1") = "v1"
scala> map
res1: scala.collection.mutable.Map[String,String] = Map((k1,v1))
scala> map += "k2" -> "v2"
res2: map.type = Map((k1,v1), (k2,v2))
scala> map.put("k3", "v3")
res3: Option[String] = None
scala> map
res4: scala.collection.mutable.Map[String,String] = Map((k3,v3), (k1,v1), (k2,v2))
और शुरू Scala 2.13
:
scala> map.addOne("k4" -> "v4")
res5: map.type = HashMap(k1 -> v1, k2 -> v2, k3 -> v3, k4 -> v4)
new
खाली कोष्ठक का उपयोग करते समय अनावश्यक हैं।
हमेशा की तरह, आपको सवाल करना चाहिए कि क्या आपको वास्तव में एक परिवर्तनशील मानचित्र की आवश्यकता है।
अपरिवर्तनीय नक्शे बनाने के लिए तुच्छ हैं:
val map = Map(
"mykey" -> "myval",
"myotherkey" -> "otherval"
)
जब पहली बार बनाया जा रहा हो तो म्यूटेबल मैप्स अलग नहीं हैं:
val map = collection.mutable.Map(
"mykey" -> "myval",
"myotherkey" -> "otherval"
)
map += "nextkey" -> "nextval"
इन दोनों मामलों में, मैप उदाहरण के लिए सही प्रकार के मापदंडों को निर्धारित करने के लिए इनवेंशन का उपयोग किया जाएगा।
आप किसी अपरिवर्तनीय मानचित्र को भी पकड़ सकते हैं var
, चर तब "अद्यतन" करते समय हर बार एक नए अपरिवर्तनीय मानचित्र उदाहरण के साथ अद्यतन किया जाएगा।
var map = Map(
"mykey" -> "myval",
"myotherkey" -> "otherval"
)
map += "nextkey" -> "nextval"
यदि आपके पास कोई प्रारंभिक मान नहीं है, तो आप Map.empty का उपयोग कर सकते हैं:
val map : Map[String, String] = Map.empty //immutable
val map = Map.empty[String,String] //immutable
val map = collection.mutable.Map.empty[String,String] //mutable
map ++ Seq("another1" -> "anotherVal1", "another2" -> "anotherVal2")
जब आप कहें
val map = scala.collection.mutable.Map
आप मानचित्र का उदाहरण नहीं बना रहे हैं, बल्कि मानचित्र प्रकार को बदल रहे हैं।
map: collection.mutable.Map.type = scala.collection.mutable.Map$@fae93e
निम्न के बजाय प्रयास करें:
scala> val map = scala.collection.mutable.Map[String, Int]()
map: scala.collection.mutable.Map[String,Int] = Map()
scala> map("asdf") = 9
scala> map
res6: scala.collection.mutable.Map[String,Int] = Map((asdf,9))
एक नया अपरिवर्तनीय मानचित्र बनाएँ:
scala> val m1 = Map("k0" -> "v0")
m1: scala.collection.immutable.Map[String,String] = Map(k0 -> v0)
उपरोक्त मानचित्र में एक नई कुंजी / मूल्य जोड़ी जोड़ें (और एक नया नक्शा बनाएं, क्योंकि वे दोनों अपरिवर्तनीय हैं):
scala> val m2 = m1 + ("k1" -> "v1")
m2: scala.collection.immutable.Map[String,String] = Map(k0 -> v0, k1 -> v1)
प्रारंभिक मूल्य के बिना एक परिवर्तनशील मानचित्र बनाएं:
scala> var d= collection.mutable.Map[Any, Any]()
d: scala.collection.mutable.Map[Any,Any] = Map()
प्रारंभिक मानों के साथ एक परिवर्तनशील मानचित्र बनाएं:
scala> var d= collection.mutable.Map[Any, Any]("a"->3,1->234,2->"test")
d: scala.collection.mutable.Map[Any,Any] = Map(2 -> test, a -> 3, 1 -> 234)
मौजूदा कुंजी-मूल्य अपडेट करें:
scala> d("a")= "ABC"
नया कुंजी-मूल्य जोड़ें:
scala> d(100)= "new element"
अद्यतन किए गए नक्शे की जाँच करें:
scala> d
res123: scala.collection.mutable.Map[Any,Any] = Map(2 -> test, 100 -> new element, a -> ABC, 1 -> 234)
var नक्शा: मानचित्र [स्ट्रिंग, स्ट्रिंग] = मानचित्र ()
var map1 = map + ("लाल" -> "# FF0000")
Println (map1)