Kotlin में list को सही तरीके से कॉपी कैसे करें: क्लोनिंग, कॉपी और डीप कॉपी
सभी को नमस्कार! मैंने अभी Kotlin सीखना शुरू किया है और lists के साथ काम करते समय एक अप्रत्याशित समस्या का सामना किया।
मेरे पास numbers की एक list `originalList` है, और मैं इसकी एक copy बनाना चाहता हूँ ताकि मैं copy को बदल सकूँ बिना original को प्रभावित किए। मैंने एक list को दूसरे में सीधे assign करने की कोशिश की:
```kotlin
fun main() {
val originalList = mutableListOf(1, 2, 3, 4, 5)
val copiedList = originalList
copiedList.add(6)
println("Original: $originalList") // [1, 2, 3, 4, 5, 6] — बदल गया!
println("Copied: $copiedList") // [1, 2, 3, 4, 5, 6]
}
```
जैसा कि आप देख सकते हैं, `copiedList` को बदलने पर `originalList` भी बदल जाता है। ऐसा इसलिए होता है क्योंकि `copiedList` वेरिएबल मेमोरी में उसी object को संदर्भित करता है, न कि डेटा की एक नई copy को।
मुझे पता है कि Java में lists को कॉपी करने के लिए `new ArrayList<>(originalList)` का उपयोग किया जाता था। लेकिन Kotlin में अधिक idiomatic तरीके हैं? क्या `.clone()`, `.copy()`, या `toList()` जैसे methods हैं? और अगर list में जटिल objects हैं जिन्हें भी कॉपी करने की आवश्यकता है, तो क्या करें?