আমি কীভাবে কোটলিনের মিউটেবললিস্টটি খালি মিউটেবললিস্টে শুরু করতে পারি?


241

এত সহজ বলে মনে হচ্ছে, তবে, আমি কোটলিনকে MutableListখালি রাখতে কীভাবে শুরু করব MutableList?

আমি এটি এইভাবে হ্যাক করতে পারি তবে আমি নিশ্চিত যে আরও সহজ কিছু পাওয়া যায়:

var pusta: List<Kolory> = emptyList()
var cos: MutableList<Kolory> = pusta.toArrayList()

উত্তর:


436

আপনি কেবল লিখতে পারেন:

val mutableList = mutableListOf<Kolory>()

এটি সর্বাধিক অভিহিত পদ্ধতি।

বিকল্প উপায় হয়

val mutableList : MutableList<Kolory> = arrayListOf()

অথবা

val mutableList : MutableList<Kolory> = ArrayList()

এটি এই সত্যটি কাজে লাগিয়েছে যে জাভা জাতীয় প্রকারগুলি ArrayListস্পষ্টভাবে MutableListএকটি সংকলক ট্রিকের মাধ্যমে প্রকারটি প্রয়োগ করে ।


আপনার কি কিছু আমদানি করা দরকার? আমি যখন আমার বর্তমান প্রকল্পে এটি লিখি তখন আমি অমীমাংসিত রেফারেন্স অ্যারেলিস্টঅফ এবং একই রকম পাই যদি আমি মিউটটেবললিস্ট চেষ্টা করি
ভেক্সটরস স্পেস

আপনার ক্লাসপথে স্টাডলিব আছে?
কিরিল রাখমান

আমাকে কেবল আমার বিল্ড.gradle এ আমার কোটলিন_ভার্সন পতাকাটি সরিয়ে ১.১.১ এর পরিবর্তে ১.১.০-এ যেতে হবে
ভেক্সটরস্পেস

1
যে @androiddeveloper কারণ kotlin.collections.Listহয় না java.utils.List । কোটলিনে কিছু অন্তর্নির্মিত জাভা ধরণের ম্যাপিংয়ের একটি ব্যবস্থা আছে। দয়া করে kotlinlang.org/docs/references/java-interop.html#maped- টাইপ এবং অনুরূপ এসও প্রশ্নগুলি দেখুন। এ সম্পর্কে বিস্তারিত আলোচনা করার জন্য মন্তব্য বিভাগটি উপযুক্ত নয়।
কিরিল রাখমান

1
@ মোহনাকৃষ্ণ হ্যাঁ, ফাংশনগুলি যুক্তিগুলি পাস করার পক্ষে সমর্থন করে।
কিরিল রাখমান

17

অ্যারের তালিকার জন্য তালিকার ধরণের উপর নির্ভর করে বিভিন্ন ফর্ম:

val myList = mutableListOf<Kolory>() 
// or more specifically use the helper for a specific list type
val myList = arrayListOf<Kolory>()

লিংকডলিস্টের জন্য:

val myList = linkedListOf<Kolory>()
// same as
val myList: MutableList<Kolory> = linkedListOf()

অন্যান্য তালিকার ধরণের জন্য, আপনি যদি এগুলি সরাসরি নির্মাণ করেন তবে মিউটেবল অনুমান করা হবে:

val myList = ArrayList<Kolory>()
// or
val myList = LinkedList<Kolory>()

এটি Listইন্টারফেস (যেমন অন্যান্য সংগ্রহ লাইব্রেরি) বাস্তবায়িত কোনও কিছুর জন্য সত্য holds

তালিকাটি ইতিমধ্যে পরিবর্তনযোগ্য থাকলে বাম দিকে টাইপের পুনরাবৃত্তি করার দরকার নেই। বা আপনি যদি কেবল তাদেরকে কেবল পঠনযোগ্য হিসাবে বিবেচনা করতে চান তবে উদাহরণস্বরূপ:

val myList: List<Kolory> = ArrayList()

আমি যদি নতুন মিউটেবললিস্টের আকার জানি? অ্যারেলিস্টের জন্য, আমি এটি করতে পারি: ArrayList(24)উদাহরণস্বরূপ, যদি আমি মনে করি যে 24 এটির জন্য একটি ভাল শুরু, তবে সম্ভবত এটির চেয়ে বেশি প্রয়োজন হবে না।
অ্যান্ড্রয়েড বিকাশকারী

@ অ্যান্ড্রয়েড ডেভেলপার অন্তর্নিহিত তালিকার জন্য লিস্ট কন্সট্রাক্টর বা জাভা এপিআইয়ের ডক্স দেখুন এবং আপনি যা চান তার বিকল্পগুলি দেখতে পাবেন।
জেসন মিনার্ড

আপনি সম্পর্কে ভুলে গেছেন mutableListOf। সঠিকটি হবে:val myList = arrayListOf<Kolory>() // same as // val myList = mutableListOf<Kolory>()
user924

10

আমি নীচে করতে পছন্দ:

var book: MutableList<Books> = mutableListOf()

/ ** প্রদত্ত উপাদানগুলির সাথে একটি নতুন [মিউটেবললিস্ট] ফিরিয়ে দেয়। * /

public fun <T> mutableListOf(vararg elements: T): MutableList<T>
    = if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.