স্কালায় কিওয়ে-ভ্যালু পেয়ারস সাধারণত Map ডেটা স্ট্রাকচার ব্যবহার করে কাজ করা হয়। Map হলো একটি ডেটা স্ট্রাকচার যা কীগুলোর সাথে সম্পর্কিত মান (value) সংরক্ষণ করে। এখানে প্রতিটি কীর সাথে একটি ভ্যালু যুক্ত থাকে, এবং আপনি কীগুলির মাধ্যমে মান অ্যাক্সেস করতে পারেন। স্কালার Map ডেটা স্ট্রাকচারটি খুবই শক্তিশালী এবং বিভিন্ন ফাংশনাল অপারেশন সমর্থন করে। এই অংশে আমরা কিওয়ে-ভ্যালু পেয়ারস নিয়ে কাজ করার বিভিন্ন কৌশল দেখব।
১. Map তৈরি করা (Creating a Map)
স্কালায় কিওয়ে-ভ্যালু পেয়ারস ধারণ করতে Map ব্যবহার করা হয়। একটি Map দুটি ধরনের হতে পারে:
- Immutable Map (ইমিউটেবল ম্যাপ)
- Mutable Map (মিউটেবল ম্যাপ)
Immutable Map
val map = Map("a" -> 1, "b" -> 2, "c" -> 3)
println(map) // Output: Map(a -> 1, b -> 2, c -> 3)Mutable Map
import scala.collection.mutable.Map
val mutableMap = Map("a" -> 1, "b" -> 2)
mutableMap("c") = 3
println(mutableMap) // Output: Map(a -> 1, b -> 2, c -> 3)২. কী দিয়ে ভ্যালু অ্যাক্সেস করা (Accessing Value by Key)
Map-এর মধ্যে একটি নির্দিষ্ট কী দিয়ে আপনি মান অ্যাক্সেস করতে পারেন। এর জন্য আপনি কী ব্যবহার করে সরাসরি মান পেতে পারেন।
Immutable Map
val map = Map("a" -> 1, "b" -> 2, "c" -> 3)
val value = map("a")
println(value) // Output: 1Mutable Map
val mutableMap = scala.collection.mutable.Map("a" -> 1, "b" -> 2)
mutableMap("a") = 10 // Update the value for key 'a'
println(mutableMap("a")) // Output: 10৩. get ব্যবহার করে মান পাওয়া (Using get to Retrieve Values)
get মেথডটি ব্যবহার করলে যদি কোনো কী-ভ্যালু পেয়ার না থাকে, তাহলে এটি None রিটার্ন করবে, যা Option টাইপ রিটার্ন করে। এটি ব্যবহারকারীর জন্য নিরাপদ, কারণ আপনি সহজেই নির্দিষ্ট কী’র মান না পাওয়া গেলে None-কে হ্যান্ডেল করতে পারবেন।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2)
val value = map.get("c") // Will return None as "c" is not in the map
println(value) // Output: None
val value2 = map.get("a") // Will return Some(1)
println(value2) // Output: Some(1)৪. keys এবং values ব্যবহার করা (Using keys and values)
keys: ম্যাপের সব কীগুলোর একটি সিকোয়েন্স প্রদান করে।values: ম্যাপের সব মানের একটি সিকোয়েন্স প্রদান করে।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2, "c" -> 3)
println(map.keys) // Output: Set(a, b, c)
println(map.values) // Output: Iterable(1, 2, 3)৫. map ব্যবহার করে ম্যাপের উপর ফাংশন প্রয়োগ (Applying a Function on Map using map)
map মেথডের মাধ্যমে আপনি ম্যাপের সব কীগুলোর ওপর নির্দিষ্ট ফাংশন প্রয়োগ করতে পারেন এবং নতুন একটি ম্যাপ তৈরি করতে পারেন।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2, "c" -> 3)
val doubledMap = map.map { case (key, value) => (key, value * 2) }
println(doubledMap) // Output: Map(a -> 2, b -> 4, c -> 6)৬. filter ব্যবহার করে কী-ভ্যালু ফিল্টার করা (Filtering Key-Value Pairs using filter)
filter মেথড ব্যবহার করে আপনি একটি নির্দিষ্ট শর্তের ভিত্তিতে কী-ভ্যালু পেয়ারগুলো ফিল্টার করতে পারেন।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2, "c" -> 3, "d" -> 4)
val filteredMap = map.filter { case (key, value) => value % 2 == 0 }
println(filteredMap) // Output: Map(b -> 2, d -> 4)৭. contains ব্যবহার করে কী চেক করা (Checking if a Key Exists using contains)
contains মেথড ব্যবহার করে আপনি চেক করতে পারেন কোনো কী ম্যাপের মধ্যে আছে কিনা।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2)
println(map.contains("a")) // Output: true
println(map.contains("c")) // Output: false৮. + এবং - ব্যবহার করে ম্যাপ আপডেট/মুছে ফেলা (Using + and - to Update and Remove Elements)
+: নতুন কী-ভ্যালু পেয়ার যুক্ত করতে ব্যবহৃত হয়।-: একটি কী সরানোর জন্য ব্যবহৃত হয়।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2)
val updatedMap = map + ("c" -> 3) // Add new key-value pair
println(updatedMap) // Output: Map(a -> 1, b -> 2, c -> 3)
val reducedMap = updatedMap - "a" // Remove key "a"
println(reducedMap) // Output: Map(b -> 2, c -> 3)৯. foreach ব্যবহার করে ম্যাপের উপাদান প্রক্রিয়া (Processing Map Elements using foreach)
foreach ব্যবহার করে আপনি ম্যাপের প্রতিটি কী-ভ্যালু পেয়ার প্রক্রিয়া করতে পারেন।
উদাহরণ:
val map = Map("a" -> 1, "b" -> 2, "c" -> 3)
map.foreach { case (key, value) => println(s"Key: $key, Value: $value") }এই কোডের আউটপুট হবে:
Key: a, Value: 1
Key: b, Value: 2
Key: c, Value: 3সারাংশ
Mapডেটা স্ট্রাকচার কীগুলোর সাথে মান সংরক্ষণ করতে ব্যবহৃত হয়।getমেথড এবংcontainsমেথডের মাধ্যমে কীগুলির মান সহজে অ্যাক্সেস এবং চেক করা যায়।map,filter,+,-সহ বিভিন্ন ফাংশনাল অপারেশন ম্যাপের উপাদানগুলোর ওপর কার্যকরভাবে কাজ করতে সাহায্য করে।- স্কালায় কিওয়ে-ভ্যালু পেয়ারস ব্যবহারের মাধ্যমে ডেটার ম্যানিপুলেশন এবং প্রক্রিয়াকরণ অনেক সহজ এবং আরও দক্ষ হয়।
Read more