कोटलिन में एक ArrayList के लिए एक आइटम कैसे जोड़ें?


जवाबों:


103

लोगों के लिए बस से माइग्रेट करना java, इन Kotlin Listडिफ़ॉल्ट रूप से सूचियों के अपरिवर्तनीय और परिवर्तनशील संस्करण को कहा जाता है MutableList

इसलिए यदि आपके पास कुछ ऐसा है:

val list: List<String> = ArrayList()

इस मामले में आपको एक add()विधि नहीं मिलेगी क्योंकि सूची अपरिवर्तनीय है। इसलिए आपको नीचे MutableListदिखाए अनुसार घोषणा करनी होगी :

val list: MutableList<String> = ArrayList()

अब आपको एक add()विधि दिखाई देगी और आप तत्वों को किसी भी सूची में जोड़ सकते हैं।


5
धन्यवाद! मैं
अरैज़

1
अच्छा, बस मैं क्या देख रहा हूँ। धन्यवाद।
सैम चेन

क्या उपयोग के बीच अंतर है val list: MutableList<String> = ArrayList()और val list = mutableListOf<String>()?
सैम चेन

79

यदि आपके पास एक संग्रहणीय संग्रह है:

val list = mutableListOf(1, 2, 3)
list += 4

यदि आपके पास एक IMMUTABLE संग्रह है:

var list = listOf(1, 2, 3)
list += 4

ध्यान दें कि मैं valउत्परिवर्तित सूची का उपयोग इस बात पर जोर देने के लिए करता हूं कि वस्तु हमेशा समान होती है, लेकिन इसकी सामग्री बदल जाती है।

अपरिवर्तनीय सूची के मामले में, आपको इसे बनाना होगा var+=ऑपरेटर द्वारा अतिरिक्त मूल्य के साथ एक नई वस्तु बनाई जाती है ।


7
कर रही +=एक गैर परिवर्तनशील सूची में, एक नया परिवर्तनशील-सूची में सूची के सभी तत्वों को कॉपी और फिर अपने वास्तविक सूची को पुन: असाइन करने के लिए आवश्यकता होती है। मुझे नहीं पता था कि यह आपकी सूची को घोषित करने के लिए उपयुक्त है var। वैसे भी, सूची की घोषणा करना मेरे लिए एक अच्छा विचार नहीं है।
crgarridos

1
यदि कोई सूची अपरिवर्तनीय है, तो आपके पास इसे घोषित करने के अलावा कोई अन्य विकल्प नहीं है var। यदि कोई अपरिवर्तनीय सूची घोषित की गई है val, तो सूची में परिवर्तन करने में सक्षम नहीं है। बस इसे फिर से दूसरे वैरिएबल पर रिसीव करना संभव होगा।
गेन्टर

1
वास्तव में, मैं अपने चरों के संदर्भ को बदलने की अनुमति नहीं देना चाहता। बाहरी / संगामितिक कार्यों में इसका दुष्प्रभाव हो सकता है। तर्क निकालने के लिए एक प्रति बनाने के लिए बेहतर है। लेकिन यह सवाल के दायरे से बाहर है।
crgarridos

24

यदि आप विशेष रूप से जावा ArrayList का उपयोग करना चाहते हैं तो आप कुछ इस तरह से कर सकते हैं:

fun initList(){
    val list: ArrayList<String> = ArrayList()
    list.add("text")
    println(list)
}

अन्यथा @guenhter उत्तर वह है जिसे आप ढूंढ रहे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.