Java Technologies Immutable Collection এর ধারণা গাইড ও নোট

371

Guava লাইব্রেরির একটি গুরুত্বপূর্ণ ফিচার হলো Immutable Collection। Immutable Collection এমন এক ধরনের Collection Framework যা একবার তৈরি হলে পরবর্তীতে পরিবর্তন (modification) করা যায় না। অর্থাৎ, একবার Immutable Collection তৈরি হলে তাতে নতুন আইটেম যোগ করা, কোনো আইটেম সরানো বা আপডেট করা সম্ভব নয়।


Immutable Collection কেন গুরুত্বপূর্ণ?

নিরাপত্তা (Safety)

Immutable Collections তৈরি করলে এটি accidental modification থেকে কোডকে রক্ষা করে। এর ফলে ডেটা মিউটেবল (mutable) থাকার কারণে সৃষ্ট বাগের (bug) সম্ভাবনা কমে যায়।

কর্মক্ষমতা (Performance)

Immutable Collections সাধারণত immutable অবজেক্টের সাথে কাজ করে, যা ডেটা স্ট্রাকচারকে আরও দ্রুততর এবং কার্যকর করে। এটি কনকারেন্ট (concurrent) প্রোগ্রামিং-এর ক্ষেত্রে খুবই কার্যকর।

শেয়ারিং (Sharing)

Immutable Collections সহজেই শেয়ার করা যায় কারণ এগুলো থ্রেড-সেইফ (thread-safe) এবং কোনো থ্রেড ডেটাকে পরিবর্তন করতে পারে না।

মেমরি অপ্টিমাইজেশন (Memory Optimization)

Guava Immutable Collections অভ্যন্তরীণভাবে অপটিমাইজড থাকে, যা মেমরির ব্যবহারকে আরও কার্যকর করে তোলে।


Immutable Collection তৈরির ধরন

Guava লাইব্রেরি Immutable Collections তৈরির জন্য বেশ কয়েকটি ক্লাস সরবরাহ করে, যেমন:

  • ImmutableList
  • ImmutableSet
  • ImmutableMap

ImmutableList

import com.google.common.collect.ImmutableList;

public class ImmutableListExample {
    public static void main(String[] args) {
        ImmutableList<String> fruits = ImmutableList.of("Apple", "Banana", "Guava");

        System.out.println(fruits);
        // fruits.add("Orange"); // UnsupportedOperationException
    }
}

ImmutableSet

import com.google.common.collect.ImmutableSet;

public class ImmutableSetExample {
    public static void main(String[] args) {
        ImmutableSet<String> colors = ImmutableSet.of("Red", "Green", "Blue");

        System.out.println(colors);
        // colors.remove("Green"); // UnsupportedOperationException
    }
}

ImmutableMap

import com.google.common.collect.ImmutableMap;

public class ImmutableMapExample {
    public static void main(String[] args) {
        ImmutableMap<String, String> countryCodes = ImmutableMap.of(
                "US", "United States",
                "IN", "India",
                "BD", "Bangladesh"
        );

        System.out.println(countryCodes);
        // countryCodes.put("UK", "United Kingdom"); // UnsupportedOperationException
    }
}

Immutable Collection তৈরির পদ্ধতি

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

Guava-এর of() মেথড ব্যবহার করে দ্রুত Immutable Collection তৈরি করা যায়।

Builder প্যাটার্ন ব্যবহার করে

Immutable Collection তৈরিতে Builder প্যাটার্ন ব্যবহার করলে ডেটা ধীরে ধীরে যোগ করা যায়।

import com.google.common.collect.ImmutableList;

public class ImmutableBuilderExample {
    public static void main(String[] args) {
        ImmutableList<String> names = ImmutableList.<String>builder()
                .add("John")
                .add("Jane")
                .add("Doe")
                .build();

        System.out.println(names);
    }
}

Immutable Collection এর সীমাবদ্ধতা

  1. পরিবর্তনযোগ্য নয়: একবার তৈরি হলে Collection-এ কোনো পরিবর্তন সম্ভব নয়।
  2. নতুন আইটেম যোগ করা কঠিন: যদি ডেটা পরিবর্তন করতে হয়, তাহলে নতুন Immutable Collection তৈরি করতে হয়।
  3. মেমরি ব্যবহারে সীমাবদ্ধতা: বড় আকারের Immutable Collections বেশি মেমরি ব্যবহার করতে পারে।

Guava-এর Immutable Collections নিরাপদ এবং কার্যকর প্রোগ্রামিংয়ের জন্য একটি চমৎকার ফিচার। এটি বিশেষত কনকারেন্ট প্রোগ্রামিং এবং ডেটা শেয়ারিংয়ের ক্ষেত্রে কার্যকরী। Immutable Collection ব্যবহারের মাধ্যমে ডেটার স্থায়িত্ব এবং প্রোগ্রামের গুণগত মান বজায় রাখা সহজ হয়।

Content added By
Promotion

Are you sure to start over?

Loading...