सूची मैप स्टोर का अपरिवर्तनीय संस्करण आरोही क्रम में क्यों है, जबकि उत्परिवर्तनीय संस्करण अवरोही क्रम में संग्रहीत करता है?म्यूटेबल और अपरिवर्तनीय ListMaps के पास स्कैला में अलग-अलग ऑर्डर क्यों हैं?
यहाँ एक परीक्षण है कि आप उपयोग कर सकते हैं अगर आप मिल गया है scalatest-1.6.1.jar और JUnit-4.9.jar
@Test def StackoverflowQuestion()
{
val map = Map("A" -> 5, "B" -> 12, "C" -> 2, "D" -> 9, "E" -> 18)
val sortedIMMUTABLEMap = collection.immutable.ListMap[String, Int](map.toList.sortBy[Int](_._2): _*)
println("head : " + sortedIMMUTABLEMap.head._2)
println("last : " + sortedIMMUTABLEMap.last._2)
sortedIMMUTABLEMap.foreach(X => println(X))
assert(sortedIMMUTABLEMap.head._2 < sortedIMMUTABLEMap.last._2)
val sortedMUTABLEMap = collection.mutable.ListMap[String, Int](map.toList.sortBy[Int](_._2): _*)
println("head : " + sortedMUTABLEMap.head._2)
println("last : " + sortedMUTABLEMap.last._2)
sortedMUTABLEMap.foreach(X => println(X))
assert(sortedMUTABLEMap.head._2 > sortedMUTABLEMap.last._2)
}
यहाँ पासिंग परीक्षण के उत्पादन:
head : 2
last : 18
(C,2)
(A,5)
(D,9)
(B,12)
(E,18)
head : 18
last : 2
(E,18)
(B,12)
(D,9)
(A,5)
(C,2)
एक अच्छा संग्रह एपीआई का एक प्रमुख लाभ यह है कि यह "विस्तृत रूप से की तरह सभी सनकीपन जानने के लिए होने से बचाता है है इस"। पुनरावृत्ति का क्रम 'सूची मैप' के अनुबंध का हिस्सा नहीं है, इसलिए आपको इसके बारे में कभी सोचना नहीं है। –
एक कम विशिष्ट इंटरफ़ेस विवरण भविष्य में परिवर्तन/सुधार के लिए और अधिक जगह छोड़ देता है। यदि आप तत्व आदेश के संदर्भ में विश्वसनीय व्यवहार चाहते हैं, तो 'सॉर्टेड मैप' का उपयोग करें। – Raphael
धन्यवाद सॉर्ट किया गया मानचित्र मेरे लिए अच्छा काम करता है। – Zasz