arrays - स्कैला में एक सूची के अंत में एक तत्व संलग्न करना




scala (4)

यह एक बेवकूफ सवाल की तरह लगता है, लेकिन इंटरनेट पर जो कुछ मैंने पाया वह कचरा था। मैं बस सूची List[T] में T प्रकार का तत्व नहीं जोड़ सकता List[T] । मैंने myList ::= myElement साथ प्रयास किया लेकिन ऐसा लगता है कि यह एक अजीब वस्तु बनाता है और myList.last तक पहुंचने से हमेशा सूची में डाला गया पहला तत्व लौटाता है।


ऐसा इसलिए है क्योंकि आपको यह नहीं करना चाहिए (कम से कम एक अपरिवर्तनीय सूची के साथ)। यदि आपको वास्तव में डेटा संरचना के अंत में एक तत्व जोड़ने की ज़रूरत है और इस डेटा संरचना को वास्तव में वास्तव में एक सूची होने की आवश्यकता है और इस सूची को वास्तव में वास्तव में अपरिवर्तनीय होना है तो इसे Eiher करें:

(4 :: List(1,2,3).reverse).reverse

या वो:

List(1,2,3) ::: List(4)

यह उत्तर में से एक जैसा है लेकिन अलग-अलग तरीके से:

scala> val x=List(1,2,3)
x: List[Int] = List(1, 2, 3)

scala> val y=x:::4::Nil
y: List[Int] = List(1, 2, 3, 4)

हम दो सूचियों या सूची और सरणी को जोड़ या प्रीपेड कर सकते हैं
जोड़ें:

var l = List(1,2,3)    
l=l:+4 
Result : 1 2 3 4  
var ar = Array(4,5,6)    
for(x<-ar)    
{ l=l:+x}  
  l.foreach(println)

Result:1 2 3 4 5 6

prepending:

var l = List[Int]()  
   for(x<-ar)  
    { l=x::l } //prepending    
     l.foreach(println)   

Result:6 5 4 1 2 3

List(1,2,3) :+ 4

//--> List[Int] = List(1, 2, 3, 4)

ध्यान दें कि इस ऑपरेशन में ओ (एन) की जटिलता है। यदि आपको अक्सर इस ऑपरेशन की आवश्यकता होती है, या लंबी सूचियों के लिए, किसी अन्य डेटा प्रकार (जैसे एक सूचीबफर) का उपयोग करने पर विचार करें।







scala