Collections in Groovy (কালেকশনস)

Computer Programming - গ্রুভি (Groovy)
175
175

কালেকশনস (Collections) in Groovy

Groovy তে কালেকশনস খুবই গুরুত্বপূর্ণ একটি ধারণা, যা ডেটা স্টোর করার জন্য ব্যবহৃত হয়। Groovy তে বিভিন্ন ধরনের কালেকশন ডেটা স্ট্রাকচার রয়েছে, যেমন List, Set, Map ইত্যাদি। Groovy এর কালেকশনগুলির সবচেয়ে বড় সুবিধা হল এর শক্তিশালী এবং সহজ ব্যবহারযোগ্য বৈশিষ্ট্য, যা কোড লেখাকে আরও দ্রুত এবং সহজ করে তোলে। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হয়, তাই আপনি সহজেই বিভিন্ন ধরনের কালেকশন কাজ করতে পারেন এবং প্রোগ্রামিংয়ের সময় তাদের উপর বিভিন্ন অপারেশন করতে পারেন।

এখানে Groovy তে ব্যবহৃত কিছু জনপ্রিয় কালেকশন এবং তাদের বৈশিষ্ট্য নিয়ে আলোচনা করা হলো।


1. List (তালিকা)

Groovy তে List একটি অর্ডারড কালেকশন, যার মধ্যে একটি নির্দিষ্ট অর্ডারে উপাদান রাখা হয়। এটি ডুপ্লিকেট উপাদান সমর্থন করে এবং যে কোনও ধরনের ডেটা ধারণ করতে সক্ষম।

1.1 List ডিফাইন করা

def list = [1, 2, 3, 4, 5]
println list  // Output: [1, 2, 3, 4, 5]

এখানে, list একটি সাধারণ তালিকা যা পূর্ণসংখ্যা ধারণ করে।

1.2 List এ উপাদান অ্যাক্সেস

println list[0]  // Output: 1
println list.get(2)  // Output: 3

এখানে, list[0] বা list.get(2) এর মাধ্যমে তালিকার নির্দিষ্ট উপাদান অ্যাক্সেস করা হয়েছে।

1.3 List এর অপারেশন

Groovy তে তালিকার উপর বিভিন্ন অপারেশন করা যায়। যেমন, add, remove, collect ইত্যাদি:

list.add(6)  // Add 6 to the list
println list  // Output: [1, 2, 3, 4, 5, 6]

list.remove(2)  // Remove element at index 2
println list  // Output: [1, 2, 4, 5, 6]

def doubled = list.collect { it * 2 }  // Double each element
println doubled  // Output: [2, 4, 8, 10, 12]

2. Set (সেট)

Groovy তে Set একটি আনঅর্ডারড কালেকশন, যেখানে একে অপরের থেকে আলাদা উপাদান থাকে। সেটটি ডুপ্লিকেট উপাদান গ্রহণ করে না। এটি শুধুমাত্র ইউনিক উপাদান ধারণ করে।

2.1 Set ডিফাইন করা

def set = [1, 2, 3, 4, 5] as Set
println set  // Output: [1, 2, 3, 4, 5]

এখানে, set একটি সেট যা ইউনিক উপাদান ধারণ করে।

2.2 Set এ উপাদান অ্যাক্সেস এবং অপারেশন

set.add(6)  // Add 6 to the set
println set  // Output: [1, 2, 3, 4, 5, 6]

set.remove(4)  // Remove 4 from the set
println set  // Output: [1, 2, 3, 5, 6]

println set.contains(3)  // Output: true

এখানে, set এর মধ্যে উপাদান যোগ এবং মুছে ফেলা হয়েছে এবং contains মেথড ব্যবহার করে চেক করা হয়েছে যে উপাদানটি সেটে আছে কিনা।


3. Map (ম্যাপ)

Groovy তে Map একটি কীগুলির সেট যা মানের সাথে যুক্ত থাকে। প্রতিটি কীগুলির একটি মান থাকে, এবং এটি ডেটা অ্যাক্সেস করার জন্য খুবই কার্যকরী।

3.1 Map ডিফাইন করা

def map = [name: "John", age: 25]
println map  // Output: [name:John, age:25]

এখানে, map একটি ম্যাপ যা দুটি কিজ (key) এবং মান (value) ধারণ করে।

3.2 Map এ উপাদান অ্যাক্সেস

println map['name']  // Output: John
println map.age  // Output: 25

এখানে, map['name'] বা map.age এর মাধ্যমে ম্যাপের মান অ্যাক্সেস করা হয়েছে।

3.3 Map এর অপারেশন

map.put('location', 'New York')  // Add a new key-value pair
println map  // Output: [name:John, age:25, location:New York]

map.remove('age')  // Remove the 'age' entry
println map  // Output: [name:John, location:New York]

এখানে, put মেথড ব্যবহার করে নতুন কিজ-ম্যাপ এন্ট্রি যোগ করা হয়েছে এবং remove মেথড ব্যবহার করে একটি কিজ-ম্যাপ এন্ট্রি মুছে ফেলা হয়েছে।


4. Range (রেঞ্জ)

Groovy তে Range একটি বিশেষ ধরনের কালেকশন যা সিকোয়েন্স বা ধারাবাহিক উপাদান ধারণ করে, যেমন সংখ্যা বা চরিত্র।

4.1 Range ডিফাইন করা

def range = 1..5
println range  // Output: 1..5

এখানে, 1..5 একটি রেঞ্জ যা 1 থেকে 5 পর্যন্ত সংখ্যাগুলি ধারণ করে।

4.2 Range এর অপারেশন

println range.contains(3)  // Output: true
println range.size()  // Output: 5

এখানে, contains মেথড ব্যবহার করে চেক করা হয়েছে যে রেঞ্জে একটি নির্দিষ্ট মান রয়েছে কিনা এবং size মেথড দিয়ে রেঞ্জের আকার বের করা হয়েছে।


5. Iterable Interface (ইটারেবল ইন্টারফেস)

Groovy তে Iterable হল একটি কালেকশন যা এলিমেন্টগুলোকে এক এক করে অ্যাক্সেস করার সুযোগ দেয়, যেমন লিস্ট বা সেটের উপাদানগুলো এক এক করে প্রক্রিয়া করা।

def list = [1, 2, 3, 4, 5]
list.each { println it }

এখানে, each মেথড ব্যবহার করে লিস্টের প্রতিটি উপাদান এক এক করে প্রিন্ট করা হয়েছে।


6. Groovy Collection Methods

Groovy তে কালেকশনের উপর আরও অনেক শক্তিশালী মেথড রয়েছে যা কোডকে আরও কার্যকরী এবং সংক্ষিপ্ত করে তোলে। এর মধ্যে কিছু গুরুত্বপূর্ণ মেথড:

  • collect: একটি কালেকশনের প্রতিটি উপাদানের উপর অপারেশন প্রয়োগ করে একটি নতুন কালেকশন তৈরি করা।

    def numbers = [1, 2, 3, 4]
    def doubled = numbers.collect { it * 2 }
    println doubled  // Output: [2, 4, 6, 8]
  • find: একটি কালেকশন থেকে প্রথম মিল পাওয়া উপাদান রিটার্ন করা।

    def numbers = [1, 2, 3, 4, 5]
    def found = numbers.find { it > 3 }
    println found  // Output: 4
  • eachWithIndex: প্রতিটি উপাদান এবং তার ইনডেক্সের উপর অপারেশন প্রয়োগ করা।

    def numbers = [1, 2, 3, 4]
    numbers.eachWithIndex { num, idx -> println "Index: $idx, Value: $num" }

সারসংক্ষেপ

Groovy তে কালেকশনস শক্তিশালী এবং নমনীয় ডেটা স্ট্রাকচার, যা ডেটা স্টোর এবং প্রসেসিংয়ের জন্য ব্যবহৃত হয়। Groovy তে লিস্ট, সেট, ম্যাপ, রেঞ্জ এবং অন্যান্য কালেকশন ব্যবহার করে আপনি ডেটা সংগ্রহ করতে এবং তার উপরে বিভিন্ন অপারেশন করতে পারবেন। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হওয়ার কারণে কালেকশনের উপাদান সহজেই এক্সেস ও পরিবর্তন করা সম্ভব। Groovy কালেকশনের বিভিন্ন মেথড যেমন collect, each, find ইত্যাদি আপনাকে আরও কার্যকরী এবং সংক্ষিপ্ত কোড লেখার সুবিধা দেয়।

common.content_added_by

Lists, Sets, এবং Maps এর ধারণা

182
182

Groovy তে Lists, Sets, এবং Maps এর ধারণা

Groovy তে Lists, Sets, এবং Maps হচ্ছে সংগ্রহশীল ডেটা স্ট্রাকচার, যা বিভিন্ন ধরনের ডেটা সংরক্ষণ ও প্রক্রিয়াকরণের জন্য ব্যবহার করা হয়। Java Collections Framework এর উপর ভিত্তি করে তৈরি, এগুলো Groovy তে আরও সহজে এবং সংক্ষিপ্তভাবে ব্যবহার করা যায়।


1. List

List একটি সিকোয়েন্সড সংগ্রহশীল ডেটা স্ট্রাকচার যা কোনো নির্দিষ্ট ক্রমানুসারে ডেটা সংরক্ষণ করে। Groovy তে List বিভিন্ন ধরনের ডেটা ধরতে সক্ষম এবং একই লিস্টে একাধিক ডেটা টাইপ সংরক্ষণ করা যায়।

List ডিক্লারেশন এবং ব্যবহারের উদাহরণ:

def numbers = [1, 2, 3, 4, 5]
println numbers          // Output: [1, 2, 3, 4, 5]
println numbers[0]       // Output: 1
println numbers.size()   // Output: 5

// মান যোগ করা
numbers << 6
println numbers          // Output: [1, 2, 3, 4, 5, 6]

// মান মুছে ফেলা
numbers.remove(2)
println numbers          // Output: [1, 2, 4, 5, 6]

List এর বৈশিষ্ট্য:

  • ক্রমানুসারে সংরক্ষণ: List এ উপাদানগুলি সংরক্ষণ করা হয় একটি নির্দিষ্ট ক্রমে।
  • ডুপ্লিকেট মান গ্রহণযোগ্য: List এ ডুপ্লিকেট মান গ্রহণযোগ্য।
  • ইনডেক্সিং: List এ ইনডেক্সিং ব্যবহারের মাধ্যমে নির্দিষ্ট উপাদানে অ্যাক্সেস করা যায়।

পার্থক্য Java এর সাথে: Java তে ArrayList ব্যবহার করে List তৈরি করা হয়, কিন্তু Groovy তে সরাসরি [] ব্যবহার করেই List ডিক্লার করা যায়।


2. Set

Set একটি সংগ্রহশীল ডেটা স্ট্রাকচার যা ইউনিক মান সংরক্ষণ করে। অর্থাৎ, কোনো উপাদানের ডুপ্লিকেট থাকা যাবে না। Set এর উপাদানগুলোর নির্দিষ্ট কোনো ক্রম নেই।

Set ডিক্লারেশন এবং ব্যবহারের উদাহরণ:

def uniqueNumbers = [1, 2, 3, 3, 4, 5] as Set
println uniqueNumbers   // Output: [1, 2, 3, 4, 5]

// মান যোগ করা
uniqueNumbers << 6
println uniqueNumbers   // Output: [1, 2, 3, 4, 5, 6]

// ডুপ্লিকেট মান যোগ করা
uniqueNumbers << 3
println uniqueNumbers   // Output: [1, 2, 3, 4, 5, 6]

Set এর বৈশিষ্ট্য:

  • ইউনিক মান সংরক্ষণ: Set এ শুধুমাত্র ইউনিক মান সংরক্ষণ করা যায়।
  • ডুপ্লিকেট মান গ্রহণযোগ্য নয়: Set এ ডুপ্লিকেট মান রাখা সম্ভব নয়।
  • অর্ডার গ্যারান্টি নেই: Set এ উপাদানগুলো কোনো নির্দিষ্ট ক্রমে সংরক্ষণ হয় না।

পার্থক্য Java এর সাথে: Java তে HashSet ব্যবহার করে Set তৈরি করা হয়, কিন্তু Groovy তে as Set ব্যবহার করেই Set ডিক্লার করা যায়।


3. Map

Map একটি সংগ্রহশীল ডেটা স্ট্রাকচার যা key-value জোড়ার মাধ্যমে ডেটা সংরক্ষণ করে। প্রতিটি key ইউনিক হতে হবে, তবে value ডুপ্লিকেট থাকতে পারে। Map সাধারণত দ্রুত ডেটা অনুসন্ধানের জন্য ব্যবহার করা হয়।

Map ডিক্লারেশন এবং ব্যবহারের উদাহরণ:

def person = [name: "John", age: 30, city: "New York"]
println person               // Output: [name:John, age:30, city:New York]

// নির্দিষ্ট key এর মান পাওয়া
println person['name']       // Output: John
println person.age           // Output: 30

// নতুন key-value জোড়া যোগ করা
person.country = "USA"
println person               // Output: [name:John, age:30, city:New York, country:USA]

// নির্দিষ্ট key এর মান পরিবর্তন করা
person.age = 31
println person               // Output: [name:John, age:31, city:New York, country:USA]

Map এর বৈশিষ্ট্য:

  • Key-Value জোড়া: Map এ ডেটা সংরক্ষণের জন্য key-value পেয়ার ব্যবহার করা হয়।
  • ইউনিক Key: প্রতিটি key ইউনিক হতে হবে।
  • দ্রুত অনুসন্ধান: Map ডেটা দ্রুত অনুসন্ধানের জন্য খুবই কার্যকরী।

পার্থক্য Java এর সাথে: Java তে HashMap ব্যবহার করে Map তৈরি করা হয়, কিন্তু Groovy তে সরাসরি [key: value] এর মাধ্যমে Map ডিক্লার করা যায়।


সারসংক্ষেপ

ডেটা স্ট্রাকচারবৈশিষ্ট্যউদাহরণ
Listক্রমানুসারে ডেটা সংরক্ষণ, ডুপ্লিকেট মান গ্রহণযোগ্যdef list = [1, 2, 3]
Setইউনিক মান সংরক্ষণ, কোনো ক্রম নেইdef set = [1, 2, 3] as Set
Mapkey-value পেয়ার ব্যবহার করে ডেটা সংরক্ষণdef map = [name: "John"]

Groovy তে Lists, Sets, এবং Maps খুব সহজেই তৈরি ও ব্যবহার করা যায়, এবং এর সংক্ষিপ্ত সিনট্যাক্স প্রোগ্রামিংকে আরও সুবিধাজনক করে তোলে।

common.content_added_by

Collection ম্যানিপুলেশন (Add, Remove, Update)

140
140

Collection ম্যানিপুলেশন (Add, Remove, Update) in Groovy

Groovy তে collection বা সংগ্রহ (যেমন List, Map, Set ইত্যাদি) ব্যবহৃত হয় বিভিন্ন উপাদান ধারণ এবং পরিচালনা করার জন্য। Groovy তে বিভিন্ন ধরনের collection manipulation এর জন্য সহজ এবং শক্তিশালী টুলস রয়েছে। আপনি যে কোনো ধরনের collection (যেমন List, Map, Set) থেকে উপাদান যোগ (Add), মুছে (Remove), এবং আপডেট (Update) করতে পারেন খুবই সহজভাবে।

এখানে Groovy তে Add, Remove, এবং Update করার কিছু উদাহরণ দেওয়া হলো।


১. Add (যোগ করা)

Groovy তে collections তে উপাদান যোগ করতে খুব সহজ উপায় রয়েছে। << অপারেটর বা add() মেথড ব্যবহার করে আপনি উপাদান যোগ করতে পারেন।

List এ Add করা:

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

// List এ নতুন উপাদান যোগ করা
numbers << 5   // অথবা numbers.add(5)
println numbers  // আউটপুট: [1, 2, 3, 4, 5]

এখানে, << অপারেটর ব্যবহার করা হয়েছে যাতে 5 সংখ্যা numbers লিস্টে যোগ হয়।

Map এ Add করা:

def person = [name: 'John', age: 30]

// Map এ নতুন key-value pair যোগ করা
person['city'] = 'New York'
println person  // আউটপুট: [name:John, age:30, city:New York]

এখানে, city নামক একটি নতুন key-value pair Map এ যোগ করা হয়েছে।

Set এ Add করা:

def uniqueNumbers = [1, 2, 3, 4] as Set

// Set এ নতুন উপাদান যোগ করা
uniqueNumbers.add(5)
println uniqueNumbers  // আউটপুট: [1, 2, 3, 4, 5]

এখানে, add() মেথড ব্যবহার করে 5 যোগ করা হয়েছে।


২. Remove (মুছে ফেলা)

Groovy তে collection থেকে উপাদান মুছে ফেলা খুবই সহজ। আপনি remove() মেথড অথবা -= অপারেটর ব্যবহার করতে পারেন।

List থেকে Remove করা:

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

// List থেকে একটি উপাদান মুছে ফেলা
numbers.remove(3)  // অথবা numbers -= 3
println numbers  // আউটপুট: [1, 2, 4, 5]

এখানে, remove() মেথড ব্যবহার করে 3 সংখ্যাটি numbers লিস্ট থেকে মুছে ফেলা হয়েছে।

Map থেকে Remove করা:

def person = [name: 'John', age: 30, city: 'New York']

// Map থেকে একটি key-value pair মুছে ফেলা
person.remove('city')
println person  // আউটপুট: [name:John, age:30]

এখানে, remove() মেথড ব্যবহার করে city key-value pair মুছে ফেলা হয়েছে।

Set থেকে Remove করা:

def uniqueNumbers = [1, 2, 3, 4, 5] as Set

// Set থেকে একটি উপাদান মুছে ফেলা
uniqueNumbers.remove(3)
println uniqueNumbers  // আউটপুট: [1, 2, 4, 5]

এখানে, remove() মেথড ব্যবহার করে 3 সেট থেকে মুছে ফেলা হয়েছে।


৩. Update (আপডেট করা)

Groovy তে collection এ উপাদান আপডেট করাও সহজ। আপনি সরাসরি একটি উপাদানের মান পরিবর্তন করতে পারেন, বা put() মেথড ব্যবহার করতে পারেন।

List এ Update করা:

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

// List এ নির্দিষ্ট উপাদান আপডেট করা
numbers[2] = 10
println numbers  // আউটপুট: [1, 2, 10, 4]

এখানে, numbers[2] = 10 এর মাধ্যমে 3 এর জায়গায় 10 বসানো হয়েছে।

Map এ Update করা:

def person = [name: 'John', age: 30, city: 'New York']

// Map এ key-value pair আপডেট করা
person['age'] = 35
println person  // আউটপুট: [name:John, age:35, city:New York]

এখানে, age key এর মান 30 থেকে 35 তে আপডেট করা হয়েছে।

Set এ Update করা:

Set তে আপডেট করার ধারণা কিছুটা ভিন্ন, কারণ Set হল একটি অর্ডারহীন এবং ইউনিক উপাদান ধারণকারী collection। সেক্ষেত্রে, Set এ কোনও উপাদান পরিবর্তন করা সম্ভব নয়, তবে আপনি একটি উপাদান মুছে ফেলে নতুন মান যোগ করতে পারেন।

def uniqueNumbers = [1, 2, 3, 4, 5] as Set

// Set থেকে উপাদান মুছে, নতুন উপাদান যোগ করা
uniqueNumbers.remove(3)
uniqueNumbers.add(10)
println uniqueNumbers  // আউটপুট: [1, 2, 4, 5, 10]

সারাংশ

  • Add (যোগ করা): Groovy তে collection এ উপাদান যোগ করতে << অপারেটর বা add() মেথড ব্যবহার করা হয়। এটি List, Map, এবং Set এর জন্য কার্যকর।
  • Remove (মুছে ফেলা): উপাদান মুছে ফেলতে remove() মেথড বা -= অপারেটর ব্যবহার করা হয়।
  • Update (আপডেট করা): Collection এ একটি উপাদান আপডেট করতে সরাসরি ভেরিয়েবল অ্যাক্সেস করা যায় (যেমন List এবং Map তে) বা Set এ একটি উপাদান মুছে নতুন মান যোগ করা যায়।

Groovy তে এই ম্যানিপুলেশনগুলি খুবই সহজ এবং দ্রুত, যা কোড লেখাকে আরও কার্যকর এবং সহজ করে তোলে।

common.content_added_by

Iterating over Collections (Each, Collect)

192
192

Groovy তে Collections এর উপর Iterating (Each, Collect)

Groovy তে collections (যেমন: List, Map, Set) এর উপর iteration করার জন্য each এবং collect খুবই জনপ্রিয় এবং শক্তিশালী মেথড। এই দুটি মেথড ব্যবহার করে আপনি সহজেই একটি collection এর প্রতিটি উপাদান পেতে পারেন এবং সেই উপাদানগুলির উপর বিভিন্ন ধরনের অপারেশন করতে পারেন।


1. each মেথড

Groovy তে each একটি গুরুত্বপূর্ণ মেথড যা একটি collection এর প্রতিটি উপাদান নিয়ে কাজ করে। এটি একটি closure গ্রহণ করে এবং প্রতিটি উপাদানের উপর সেই closure প্রয়োগ করে।

each মেথডের ব্যবহার:

each মেথড সাধারণত একটি List, Set বা Map এর উপর iteration করতে ব্যবহৃত হয়।

  • List এর ক্ষেত্রে each মেথড প্রতিটি উপাদান নিয়ে closure কল করবে।
  • Map এর ক্ষেত্রে, এটি key-value পেয়ার নিয়ে closure কল করবে।

উদাহরণ (List এর উপর each):

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

numbers.each { number ->
    println "Number: $number"
}

আউটপুট:

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

এখানে, each মেথড numbers List এর প্রতিটি উপাদান নিয়ে closure কল করেছে এবং প্রতিটি উপাদান number ভেরিয়েবলের মধ্যে এসেছে এবং আউটপুট দেখানো হয়েছে।

উদাহরণ (Map এর উপর each):

def person = [name: "John", age: 30, city: "New York"]

person.each { key, value ->
    println "$key: $value"
}

আউটপুট:

name: John
age: 30
city: New York

এখানে, each মেথড key-value পেয়ার নিয়ে closure কল করছে, এবং প্রতি key-value পেয়ারকে আউটপুটে দেখানো হয়েছে।


2. collect মেথড

Groovy তে collect মেথড একটি List বা Set এর উপর iteration করতে ব্যবহৃত হয় এবং এটি একটি নতুন collection তৈরি করে। collect মেথডের মাধ্যমে আপনি collection এর উপাদানগুলির উপর কোনো অপারেশন প্রয়োগ করে একটি নতুন collection তৈরি করতে পারেন। এটি সাধারণত transforming বা mapping অপারেশনের জন্য ব্যবহৃত হয়।

collect মেথডের ব্যবহার:

collect মেথড একটি নতুন collection ফেরত দেয়, যেখানে প্রতিটি উপাদান নতুন মানের ভিত্তিতে তৈরি হয়।

উদাহরণ (List এর উপর collect):

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

def squares = numbers.collect { it * it }

println squares

আউটপুট:

[1, 4, 9, 16, 25]

এখানে, collect মেথড প্রতিটি উপাদানকে স্কয়ারে রূপান্তর করেছে এবং নতুন একটি List squares তৈরি করেছে।

উদাহরণ (Map এর উপর collect):

def person = [name: "John", age: 30, city: "New York"]

def uppercaseKeys = person.collect { key, value -> key.toUpperCase() }

println uppercaseKeys

আউটপুট:

[NAME, AGE, CITY]

এখানে, collect মেথড key গুলিকে uppercase তে রূপান্তর করেছে এবং একটি নতুন List তৈরি করেছে, যাতে শুধু uppercase keys রয়েছে।

collect ব্যবহার করে Map তৈরি করা:

collect ব্যবহার করে আপনি নতুন Map তৈরি করতে পারেন, যেখানে নতুন key-value পেয়ার তৈরি হয়।

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

def squaredMap = numbers.collectEntries { number -> 
    [(number): number * number]
}

println squaredMap

আউটপুট:

[1:1, 2:4, 3:9, 4:16, 5:25]

এখানে, collectEntries মেথড ব্যবহার করে number এর উপর কাজ করে নতুন একটি Map তৈরি করা হয়েছে, যেখানে প্রতিটি number এর স্কয়ারকে value হিসেবে দেয়া হয়েছে।


each এবং collect এর মধ্যে পার্থক্য

ফিচারeachcollect
ফাংশনউপাদানগুলির উপর কাজ করার জন্য ব্যবহার হয়।নতুন collection তৈরি করতে ব্যবহার হয়।
রিটার্ন ভ্যালুকোনো রিটার্ন ভ্যালু দেয় না, শুধুমাত্র iteration করে।নতুন collection (List বা Set) ফেরত দেয়।
ব্যবহারসাধারণত side-effects তৈরি করার জন্য, যেমন প্রিন্টিং বা মান পরিবর্তন।collection এর উপাদানগুলির transformation বা mapping করতে।

সারসংক্ষেপ

  1. each মেথড একটি collection এর প্রতিটি উপাদান নিয়ে কাজ করে এবং সাধারণত কোনো side effect তৈরি করে (যেমন প্রিন্টিং, বা কিছু পরিবর্তন)। এটি কোনও নতুন collection তৈরি করে না।
  2. collect মেথড একটি নতুন collection তৈরি করে, যেখানে মূল collection এর উপাদানগুলির উপর কোনো transformation বা mapping করা হয়।
  3. collect মেথড একটি নতুন collection ফেরত দেয়, যেটি original collection এর উপাদানগুলির ভিত্তিতে তৈরি হয়।

এই দুটি মেথড Groovy তে collection এর উপর iteration এবং transformation করার জন্য খুবই কার্যকরী এবং সহজ।

common.content_added_by

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

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