मैं जो करना चाहता हूं वह स्केल में सूची वस्तुओं को सॉर्ट करना है, सूची में तत्वों को सॉर्ट नहीं करना है। उदाहरण के लिए यदि मेरे पास इन्ट्स की दो सूचियां हैं:मैं स्केल में सूची [Int] ऑब्जेक्ट्स को कैसे क्रमबद्ध कर सकता हूं?
val l1 = List(1, 2, 3, 7)
val l2 = List(1, 2, 3, 4, 10)
मैं उन्हें l1> l2 कहां रखने में सक्षम होना चाहता हूं।
मैंने एक केस क्लास बनाया है जो मुझे इसकी आवश्यकता है लेकिन समस्या यह है कि जब मैं इसका उपयोग करता हूं तो मेरी कोई अन्य विधि काम नहीं करती है। क्या मुझे कक्षा में सभी अन्य तरीकों को लागू करने की ज़रूरत है, जैसे कि flatten, sortWith आदि?
मेरी कक्षा कोड इस तरह दिखता है:
class ItemSet(itemSet: List[Int]) extends Ordered[ItemSet] {
val iSet: List[Int] = itemSet
def compare(that: ItemSet) = {
val thisSize = this.iSet.size
val thatSize = that.iSet.size
val hint = List(thisSize, thatSize).min
var result = 0
var loop = 0
val ths = this.iSet.toArray
val tht = that.iSet.toArray
while (loop < hint && result == 0) {
result = ths(loop).compare(tht(loop))
loop += 1
}
if (loop == hint && result == 0 && thisSize != thatSize) {
thisSize.compare(thatSize)
} else
result
}
}
अब अगर मैं itemsets का एक सरणी बनाने मैं इसे सॉर्ट कर सकते हैं:
val is1 = new ItemSet(List(1, 2, 5, 8))
val is2 = new ItemSet(List(1, 2, 5, 6))
val is3 = new ItemSet(List(1, 2, 3, 7, 10))
Array(is1, is2, is3).sorted.foreach(i => println(i.iSet))
scala> List(1, 2, 3, 7, 10)
List(1, 2, 5, 6)
List(1, 2, 5, 8)
दो तरीकों कि मुझे समस्याओं दे रहे हैं:
def itemFrequencies(transDB: Array[ItemSet]): Map[Int, Int] = transDB.flatten.groupBy(x => x).mapValues(_.size)
त्रुटि मैं मिलता है:
+०१२३५१६४१०६प्रकार मानचित्र की अभिव्यक्ति [कुछ भी नहीं है, इंट] उम्मीद प्रकार मानचित्र के अनुरूप नहीं है [इंट इंट]
और यह एक के लिए:
def sortListAscFreq(transDB: Array[ItemSet], itemFreq: Map[Int, Int]): Array[List[Int]] = {
for (l <- transDB) yield
l.sortWith(itemFreq(_) < itemFreq(_))
}
मैं:
प्रतीक को हल नहीं कर सकते sortWith।
क्या कोई तरीका है कि मैं केवल सूची [Int] का विस्तार कर सकता हूं ताकि मैं अन्य विधियों की कार्यक्षमता को खोए बिना सूचियों का संग्रह सॉर्ट कर सकूं?
बहुत बहुत धन्यवाद! मुझे विश्वास नहीं है कि मैंने काम करने के लिए सबकुछ प्राप्त करने में 2 दिन बिताए हैं। –
@ वैल, मुझे लगता है कि यह कटाक्ष है लेकिन आप इस तरह की याद आ रही हैं- सूचियों का _array_ _sorted' को कॉल करने से पहले _not_ सॉर्ट किया गया है, और फिर यह है। इसके अलावा मैं सिर्फ ओपी के उदाहरणों का उपयोग कर रहा हूं, जो आम तौर पर एक अच्छा विचार है। –