Collections এর জন্য Built-in Functions (filter, map, reduce)
কটলিনে Collections পরিচালনার জন্য অনেক বিল্ট-ইন ফাংশন রয়েছে, যার মধ্যে filter, map, এবং reduce বেশ জনপ্রিয়। এই ফাংশনগুলো লিস্ট, সেট, এবং ম্যাপের মতো কালেকশনে ডেটা ম্যানিপুলেট করতে ব্যবহৃত হয়। নিচে এই ফাংশনগুলোর ব্যবহার ও উদাহরণ নিয়ে বিস্তারিত আলোচনা করা হলো।
১. filter
filter ফাংশন একটি কালেকশনের প্রতিটি উপাদানকে একটি শর্তের উপর ভিত্তি করে ফিল্টার করে এবং শর্ত পূরণ করা উপাদানগুলোর নতুন একটি কালেকশন রিটার্ন করে।
উদাহরণ:
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // আউটপুট: [2, 4, 6, 8, 10]
}
ব্যাখ্যা:
- এখানে
filterফাংশনটিnumbersলিস্টের প্রতিটি সংখ্যাকে চেক করে, এবং শুধুমাত্র যেসব সংখ্যা ২ দ্বারা বিভাজ্য সেগুলোকে একটি নতুন লিস্টে রেখে দেয়।
২. map
map ফাংশন একটি কালেকশনের প্রতিটি উপাদানের উপর একটি অপারেশন প্রয়োগ করে এবং একটি নতুন কালেকশন রিটার্ন করে। এটি মূল কালেকশনের আকৃতি পরিবর্তন না করে নতুন একটি কালেকশন তৈরি করে।
উদাহরণ:
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) // আউটপুট: [1, 4, 9, 16, 25]
}
ব্যাখ্যা:
- এখানে
mapফাংশনটিnumbersলিস্টের প্রতিটি সংখ্যার স্কোয়ার নিয়ে একটি নতুন লিস্ট তৈরি করেছে।
৩. reduce
reduce ফাংশন একটি কালেকশনের উপাদানগুলোকে একটি একক মানে রিডিউস করে। এটি একটি একক ফাংশন হিসেবে একটি চলমান মানকে গণনা করতে ব্যবহৃত হয়। প্রথম দুটি উপাদানকে একত্রিত করে শুরু হয় এবং ফলস্বরূপ মানটি পরবর্তী উপাদানের সাথে যুক্ত হয়।
উদাহরণ:
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.reduce { acc, number -> acc + number }
println(sum) // আউটপুট: 15
}
ব্যাখ্যা:
- এখানে
reduceফাংশনটিnumbersলিস্টের সব সংখ্যাকে একত্রিত করে, ফলে মোট ১৫ প্রাপ্ত হয়েছে।accহলো আগের ফলাফল এবংnumberহলো বর্তমান উপাদান।
৪. Composing Functions
কটলিনে আপনি filter, map, এবং reduce ফাংশনগুলোকে একসাথে ব্যবহার করে আরও জটিল অপারেশন করতে পারেন।
উদাহরণ:
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val sumOfEvenSquares = numbers
.filter { it % 2 == 0 } // প্রথমে ফিল্টার করুন
.map { it * it } // পরে স্কোয়ার করুন
.reduce { acc, number -> acc + number } // অবশেষে সব যোগ করুন
println(sumOfEvenSquares) // আউটপুট: 220
}
ব্যাখ্যা:
- এখানে প্রথমে
filterব্যবহার করে মাত্র ইভেন সংখ্যা বের করা হয়েছে, তারপরmapব্যবহার করে সেগুলোর স্কোয়ার করা হয়েছে, এবং অবশেষেreduceব্যবহার করে স্কোয়ার করা সংখ্যাগুলো যোগ করা হয়েছে।
উপসংহার
কটলিনে Collections-এর জন্য filter, map, এবং reduce ফাংশনগুলো অত্যন্ত কার্যকর এবং শক্তিশালী। এগুলো ব্যবহার করে আপনি কোডকে সংক্ষিপ্ত, পরিষ্কার এবং রিডেবল করতে পারেন। এই ফাংশনগুলোর মাধ্যমে ডেটা ম্যানিপুলেশন দ্রুত এবং কার্যকরভাবে করা যায়।