Collections এর সাথে Filter, Map, এবং Reduce অপারেশন

Computer Programming - গ্রুভি (Groovy) Collections in Groovy (কালেকশনস) |
160
160

Groovy তে Collections এর সাথে filter, map, এবং reduce অপারেশন

Groovy তে collections (যেমন List, Set, Map) এর সাথে কার্যকরী ফাংশনাল অপারেশনগুলির মধ্যে অন্যতম হল filter, map, এবং reduce। এগুলি ফাংশনাল প্রোগ্রামিং স্টাইলের অপারেশন, যা আপনাকে একটি কালেকশন বা ডেটার উপর বিভিন্ন ধরনের ম্যানিপুলেশন করতে সহায়ক। Groovy তে এই অপারেশনগুলো খুবই সহজ এবং শক্তিশালী, এবং কোডকে আরও সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে।


1. filter অপারেশন

filter অপারেশন একটি কালেকশন থেকে নির্দিষ্ট শর্ত পূর্ণকারী উপাদানগুলো নির্বাচন করতে ব্যবহৃত হয়। এটি একটি শর্ত (predicate) নিয়ে কাজ করে এবং যে উপাদানগুলি সেই শর্ত পূর্ণ করে, সেগুলো ফিরিয়ে দেয়। এটি মূলত একটি লম্বা তালিকা বা কালেকশন থেকে নির্বাচিত উপাদানগুলির একটি সাবসেট তৈরি করতে ব্যবহার হয়।

filter উদাহরণ:

def numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def evenNumbers = numbers.findAll { it % 2 == 0 }  // শুধু even সংখ্যাগুলি ফিল্টার করা হবে
println evenNumbers  // Output: [2, 4, 6, 8, 10]

এখানে findAll একটি Groovy ফাংশন যা filter অপারেশনের মতো কাজ করে এবং it % 2 == 0 শর্তের মাধ্যমে শুধুমাত্র even সংখ্যাগুলিকে নির্বাচন করা হচ্ছে।


2. map অপারেশন

map অপারেশন একটি কালেকশনের প্রতিটি উপাদানের উপর একটি নির্দিষ্ট ফাংশন প্রয়োগ করে এবং একটি নতুন কালেকশন তৈরি করে। এটি মূল কালেকশনটিকে পরিবর্তন না করে নতুন একটি কালেকশন প্রদান করে, যেখানে প্রতিটি উপাদান ম্যাপ করা হয়।

map উদাহরণ:

def numbers = [1, 2, 3, 4, 5]

def doubledNumbers = numbers.collect { it * 2 }  // প্রতিটি উপাদানকে দ্বিগুণ করা হচ্ছে
println doubledNumbers  // Output: [2, 4, 6, 8, 10]

এখানে collect ফাংশনটি একটি map অপারেশন হিসেবে কাজ করছে এবং প্রতিটি উপাদানকে দ্বিগুণ করে একটি নতুন কালেকশন তৈরি করছে।


3. reduce অপারেশন

reduce অপারেশন একটি কালেকশনের সব উপাদানকে একত্রিত করে একটি একক ফলাফল প্রদান করে। এটি সাধারণত একাধিক উপাদানকে কোনো এক কার্যকরী সমীকরণে বা অ্যাকিউমুলেটর প্রক্রিয়ায় পরিণত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যোগফল, গুণফল, ইত্যাদি।

reduce উদাহরণ:

def numbers = [1, 2, 3, 4, 5]

def sum = numbers.inject(0) { acc, num -> acc + num }  // উপাদানগুলো যোগ করা হচ্ছে
println sum  // Output: 15

এখানে inject একটি reduce অপারেশন হিসেবে কাজ করছে। প্রথমে 0 অ্যাকিউমুলেটর হিসেবে দেওয়া হয়েছে, তারপর প্রতিটি উপাদানকে যোগ করে একক ফলাফল পাওয়া যাচ্ছে (যোগফল)।

আরেকটি উদাহরণ:

def numbers = [1, 2, 3, 4, 5]

def product = numbers.inject(1) { acc, num -> acc * num }  // উপাদানগুলো গুণ করা হচ্ছে
println product  // Output: 120

এখানে inject ফাংশনটি গুণফল বের করছে, যেখানে প্রথমে 1 অ্যাকিউমুলেটর হিসেবে ব্যবহার করা হয়েছে এবং প্রতিটি উপাদানকে গুণ করে একক ফলাফল পাওয়া যাচ্ছে।


Groovy তে Collections এর সাথে filter, map, এবং reduce এর উপকারিতা

  1. কমপ্যাক্ট কোড: এই ফাংশনগুলো ব্যবহার করলে কোড অনেক সংক্ষিপ্ত এবং পরিষ্কার হয়। আপনি সহজে একটি বড় কালেকশনের উপাদানগুলির উপর বিভিন্ন ধরনের অপারেশন করতে পারবেন।
  2. ফাংশনাল প্রোগ্রামিং: Groovy তে এই অপারেশনগুলো ব্যবহার করে আপনি ফাংশনাল প্রোগ্রামিং স্টাইল অনুসরণ করতে পারবেন, যেখানে আপনি প্রপার্টি বা মেথড ব্যবহারের মাধ্যমে উপাদানগুলির ওপর প্রক্রিয়া করতে পারবেন।
  3. নতুন কালেকশন তৈরি: map এবং filter অপারেশনগুলোর মাধ্যমে আপনি মূল কালেকশনটি অপরিবর্তিত রেখে নতুন কালেকশন তৈরি করতে পারেন, যা কোডের পরিষ্কারতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।
  4. একাধিক স্টেপে এক্সিকিউশন: reduce অপারেশন ব্যবহার করলে আপনি একাধিক উপাদানকে একত্রিত করতে পারেন, যা একযোগভাবে শক্তিশালী কোডিং স্টাইল গঠন করতে সহায়ক।

সারসংক্ষেপ

Groovy তে filter, map, এবং reduce অপারেশনগুলি শক্তিশালী ফাংশনাল প্রোগ্রামিং টুলস। filter কালেকশন থেকে নির্দিষ্ট উপাদানগুলিকে বেছে নেয়ার জন্য ব্যবহৃত হয়, map প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ করতে এবং নতুন কালেকশন তৈরি করতে ব্যবহৃত হয়, এবং reduce সব উপাদানকে একত্রিত করে একটি একক ফলাফল তৈরির জন্য ব্যবহৃত হয়। এগুলি কোডকে সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে, যা ডেভেলপারদের দ্রুত এবং দক্ষভাবে কাজ করতে সহায়তা করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion