কম্পিউটার টিউটোরিয়াল

কোটলিনে HashMap ইটারেট করার উপায়

ওভারভিউ

একটি Map হলো একটি সংগ্রহ যেখানে ডেটা কি-ভ্যালু জোড়া (key-value pair) হিসেবে সংরক্ষিত থাকে এবং সংশ্লিষ্ট কিটি ইউনিক হতে হবে। HashMap হলো MutableMap ইন্টারফেসের উপর ভিত্তি করে তৈরি একটি সংগ্রহ ক্লাস যা HashTable-এর MutableMap ইন্টারফেস বাস্তবায়ন করে। কোটলিন HashMap সংজ্ঞায়িত ও ম্যানিপুলেট করার জন্য চার ধরনের কনস্ট্রাক্টর প্রদান করে।

  • HashMap() – ডিফল্ট কনস্ট্রাক্টর যা খালি HashMap তৈরি করতে সাহায্য করে।

  • HashMap(initialCapacity: Int, loadFactor: Float = 0f) – প্রাথমিক ক্ষমতা ব্যবহার করে HashMap তৈরি করতে সাহায্য করে; যদি প্রদান না করা হয়, তবে এটি উপেক্ষা করা হবে এবং ডিফল্ট HashMap() হিসেবে কাজ করবে।

  • HashMap(initialCapacity: Int) – দেওয়া ক্ষমতা সহ HashMap তৈরি করতে সাহায্য করে।

  • HashMap(original: Map <out K, V>) – Map-এ নির্দিষ্ট করা HashMap-এর একটি ইনস্ট্যান্স তৈরি করে।

এখানে, আমরা HashMap() কনস্ট্রাক্টর ব্যবহার করে একটি HashMap তৈরি করব এবং এর সাথে সম্পর্কিত Put() ব্যবহার করে কিছু কি-ভ্যালু ডেটা দিয়ে পূরণ করব। এই উদাহরণে, আমরা "বিষয়" নামে একটি সংগ্রহ তৈরি করব যা বিষয়ের নাম এবং আমাদের ব্যক্তিগত পছন্দের নম্বর ধারণ করবে। আমরা কোটলিন লাইব্রেরিতে উপলব্ধ বিভিন্ন অপশন ব্যবহার করে এই HashMap-এ ইটারেট করব।

for() লুপ ব্যবহার করে ইটারেট

প্রচলিত প্রোগ্রামিং ভাষায়, কোনো সংগ্রহের মাধ্যমে ট্রাভার্স করার জন্য for() লুপ থাকে। নিচের উদাহরণে, আমরা for() লুপ ব্যবহার করে Map-এ ট্রাভার্স করব।

উদাহরণ

fun main(args: Array<String>) {
    // HashMap ঘোষণা
    var subject: HashMap<String, Int> = HashMap<String, Int>()

    // HashMap-এ মান অ্যাসাইন করা
    subject.put("Java", 1)
    subject.put("Kotlin", 2)
    subject.put("Python", 3)
    subject.put("C++", 4)
    subject.put("SQL", 5)

    // for লুপ ব্যবহার করে ইটারেট
    println("---------for লুপ ব্যবহার করে ইটারেট------------\n")
    for ((k, v) in subject) {
        println(" বিষয়ের নাম -> $k এবং এর পছন্দ -> $v")
    }
    println("\n\n")
}

আউটপুট

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar
---------for লুপ ব্যবহার করে ইটারেট------------
বিষয়ের নাম -> Java এবং এর পছন্দ -> 1
বিষয়ের নাম -> C++ এবং এর পছন্দ -> 4
বিষয়ের নাম -> Kotlin এবং এর পছন্দ -> 2
বिषয়ের নাম -> Python এবং এর পছন্দ -> 3
বিষয়ের নাম -> SQL এবং এর পছন্দ -> 5

forEach() লুপ ব্যবহার করে ইটারেট

for() লুপের পাশাপাশি, আমরা সংগ্রহের মাধ্যমে প্রোপাগেট করার জন্য forEach()ও ব্যবহার করতে পারি। নিচের উদাহরণে, আমরা forEach() লুপ ব্যবহার করে Map-এ ট্রাভার্স করব।

উদাহরণ

fun main(args: Array<String>) {
    // HashMap ঘোষণা
    var subject: HashMap<String, Int> = HashMap<String, Int>()

    // HashMap-এ মান অ্যাসাইন করা
    subject.put("Java", 1)
    subject.put("Kotlin", 2)
    subject.put("Python", 3)
    subject.put("C++", 4)
    subject.put("SQL", 5)

    // forEach ব্যবহার করে ইটারেট
    println("------forEach মেথড ব্যবহার করে ইটারেট---------\n")
    subject.forEach { (k, v) ->
        println(" বিষয়ের নাম -> $k এবং এর পছন্দ -> $v")
    }
    println("\n\n")
}

আউটপুট

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar
------forEach মেথড ব্যবহার করে ইটারেট---------
বিষয়ের নাম -> Java এবং এর পছন্দ -> 1
বিষয়ের নাম -> C++ এবং এর পছন্দ -> 4
বিষয়ের নাম -> Kotlin এবং এর পছন্দ -> 2
বিষয়ের নাম -> Python এবং এর পছন্দ -> 3
বিষয়ের নাম -> SQL এবং এর পছন্দ -> 5

iterator() মেথড ব্যবহার করে

উপরোক্ত প্রচলিত উপায়ের পাশাপাশি, কোটলিন স্ট্যান্ডার্ড লাইব্রেরি একটি ফাংশন iterator() প্রদান করে যা আমরা একটি সংগ্রহের মান প্রকাশ না করেই অ্যাক্সেস করতে ব্যবহার করতে পারি। এটি একটি সংগ্রহের সব মান অ্যাক্সেস করার সবচেয়ে দক্ষ উপায়। নিচের উদাহরণে, আমরা iterator() মেথড ব্যবহার করে HashMap ট্রাভার্স করব।

উদাহরণ

fun main(args: Array<String>) {
    // HashMap ঘোষণা
    var subject: HashMap<String, Int> = HashMap<String, Int>()

    // HashMap-এ মান অ্যাসাইন করা
    subject.put("Java", 1)
    subject.put("Kotlin", 2)
    subject.put("Python", 3)
    subject.put("C++", 4)
    subject.put("SQL", 5)

    // iterator() মেথড ব্যবহার
    println("-----------iterator() মেথড ব্যবহার করে-----------\n")
    val i = subject.keys.iterator()
    while (i.hasNext()) {
        val key = i.next()
        val value = subject[key]
        println("বিষয়ের নাম -> ${key} এবং এর পছন্দ -> $value")
    }
}

আউটপুট

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar
-----------iterator() মেথড ব্যবহার করে-----------
বিষয়ের নাম -> Java এবং এর পছন্দ -> 1
বিষয়ের নাম -> C++ এবং এর পছন্দ -> 4
বিষয়ের নাম -> Kotlin এবং এর পছন্দ -> 2
বিষয়ের নাম -> Python এবং এর পছন্দ -> 3
বিষয়ের নাম -> SQL এবং এর পছন্দ -> 5
  1. নেটওয়ার্ক সিকিউরিটি সমস্যা সমাধান ও উন্নতির পদ্ধতি

  2. জাভাস্ক্রিপ্টে অ্যারে-র অবজেক্টগুলোর ওপর ইটারেট করে একটি প্রপার্টি যোগ করা

  3. অ্যান্ড্রয়েডে HashMap সিঙ্গলটনে সংরক্ষণ করা

  4. অ্যান্ড্রয়েডে JSON অ্যারে ইটারেট করার পদ্ধতি