ওভারভিউ
List এবং array কোটলিন দ্বারা সমর্থিত দুটি জনপ্রিয় সংগ্রহ। সংজ্ঞা অনুযায়ী, এই দুটি সংগ্রহই সিকোয়েনশিয়াল মেমরি লোকেশন অ্যালোকেট করে। এই নিবন্ধে, আমরা একটি উদাহরণ लेकर এই দুটি টাইপের সংগ্রহের পার্থক্য প্রদর্শন করব।
| গুণাবলী | Array | List |
|---|---|---|
| বাস্তবায়ন | Array<T> ক্লাস ব্যবহার করে বাস্তবায়িত | List<T> বা MutableList<T> ইন্টারফেস ব্যবহার করে বাস্তবায়িত |
| Mutable (পরিবর্তনশীল) | Array<T> mutable, অর্থাৎ মানগুলো পরিবর্তন করা যায়। | List<T> অপরিবর্তনীয় (immutable) প্রকৃতির। মিউটেবল লিস্ট তৈরি করতে MutableList<T> ইন্টারফেস ব্যবহার করতে হয়। |
| আকার (Size) | Array-এর আকার ফিক্সড। এর আকার বড়ানো বা ছোট করা যায় না। | MutableList<T>-এ 'add' এবং 'remove' ফাংশন থাকে আকার বড়ানো বা ছোট করার জন্য। |
| পারফরম্যান্স | বेहतर পারফরম্যান্সের জন্য ব্যবহার করুন, কারণ array বিভিন্ন প্রাইমিটিভ ডেটা টাইপের জন্য অপ্টিমাইজড যেমন IntArray[], DoubleArray[]। | কোডে উন্নত অ্যাক্সেসিবিলিটির জন্য ব্যবহার করুন। যেহেতু আকার ডাইনামিক প্রকৃতির, তাই ভালো মেমরি ম্যানেজমেন্ট। |
উদাহরণ
নিচের উদাহরণে, আমরা দেখব কিভাবে কোটলিনে একটি অ্যারে এবং একটি List ঘোষণা করা যায় এবং কিভাবে তাদের মান ম্যানিপুলেট করা যায়।
fun main(args: Array<String>) {
val a = arrayOf(1, 2, 3)
// অ্যারে a-এর সব মান প্রিন্ট করা
println("অ্যারে নিম্নলিখিত মানগুলো ধারণ করে:")
a.forEach {
println(it)
}
val names = listOf("stud1", "stud2", "stud3")
// লিস্ট names-এর সব মান প্রিন্ট করা
println("\nলিস্ট নিম্নলিখিত মানগুলো ধারণ করে: ")
names.forEach {
println(it)
}
var days: MutableList<String> = mutableListOf(
"Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday"
)
// MutableList লিস্টের সব মান প্রিন্ট করা
println("\nপ্রদত্ত Mutable List ধারণ করে:")
days.forEach {
print(it)
}
println("\n\nসংশোধনের পর Mutable List:")
days.forEach {
print(it + ", ")
}
}
আউটপুট
অ্যারে নিম্নলিখিত মানগুলো ধারণ করে: 1 2 3 লিস্ট নিম্নলিখিত মানগুলো ধারণ করে: stud1 stud2 stud3 প্রদত্ত Mutable List ধারণ করে: MondayTuesdayWednesdayThursdayFridaySaturdaySunday সংশোধনের পর Mutable List: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday,