Mutable এবং Immutable Tuples এর পার্থক্য

Tuples এর Immutable বৈশিষ্ট্য - জাভা টাপল (Java Tuples) - Java Technologies

440

Tuple এমন একটি ডেটা স্ট্রাকচার যা একাধিক মানকে গোষ্ঠীভুক্ত করে। এটি mutable এবং immutable উভয় হতে পারে। নিচে Mutable এবং Immutable Tuples এর মধ্যে প্রধান পার্থক্য এবং ব্যবহারিক উদাহরণ আলোচনা করা হলো।


Mutable Tuple

Mutable Tuples এর বৈশিষ্ট্য:

  1. পরিবর্তনযোগ্য: একবার তৈরি করার পর Tuple এর মান পরিবর্তন করা যায়।
  2. ডেটা নিরাপত্তা কম: অন্য থ্রেড বা কোড সহজেই মান পরিবর্তন করতে পারে।
  3. উপযোগিতা: যখন মান পরিবর্তনের প্রয়োজন হয়।

Immutable Tuple

Immutable Tuples এর বৈশিষ্ট্য:

  1. পরিবর্তনযোগ্য নয়: একবার তৈরি হলে Tuple এর মান পরিবর্তন করা যায় না।
  2. ডেটা নিরাপত্তা বেশি: অন্য থ্রেড বা কোড মান পরিবর্তন করতে পারে না।
  3. উপযোগিতা: যেখানে মান পরিবর্তনের প্রয়োজন নেই, যেমন কনস্ট্যান্ট ডেটা।

Mutable এবং Immutable Tuples এর তুলনামূলক চার্ট

বৈশিষ্ট্যMutable TuplesImmutable Tuples
পরিবর্তনযোগ্যতাপরিবর্তনযোগ্যপরিবর্তনযোগ্য নয়
ডেটা নিরাপত্তানিরাপত্তা কমনিরাপত্তা বেশি
পারফরম্যান্সকিছুটা দ্রুত (লেখার জন্য)কিছুটা ধীর (অতিরিক্ত কপি প্রয়োজন)
ব্যবহারপরিবর্তনযোগ্য ডেটার জন্যস্থির ডেটার জন্য
উপযুক্ততাডেটা বারবার পরিবর্তন হলেডেটা একবার সেট করার জন্য

Mutable Tuple উদাহরণ

Javatuples লাইব্রেরি সরাসরি Mutable Tuples সরবরাহ করে না। তবে, জাভার কাস্টম ক্লাস দিয়ে Mutable Tuples তৈরি করা যায়।

// Mutable Tuple Implementation
public class MutablePair<A, B> {
    private A first;
    private B second;

    public MutablePair(A first, B second) {
        this.first = first;
        this.second = second;
    }

    public A getFirst() {
        return first;
    }

    public void setFirst(A first) {
        this.first = first;
    }

    public B getSecond() {
        return second;
    }

    public void setSecond(B second) {
        this.second = second;
    }
}

// Example Usage
public class MutableTupleExample {
    public static void main(String[] args) {
        MutablePair<String, Integer> pair = new MutablePair<>("Alice", 25);

        // Initial Values
        System.out.println("Name: " + pair.getFirst()); // Alice
        System.out.println("Age: " + pair.getSecond()); // 25

        // Update Values
        pair.setFirst("Bob");
        pair.setSecond(30);
        System.out.println("Updated Name: " + pair.getFirst()); // Bob
        System.out.println("Updated Age: " + pair.getSecond()); // 30
    }
}

Immutable Tuple উদাহরণ

Javatuples লাইব্রেরি Immutable Tuples সরবরাহ করে। Tuple তৈরি করার পরে এর মান পরিবর্তন করা যায় না।

import org.javatuples.Pair;

public class ImmutableTupleExample {
    public static void main(String[] args) {
        // Immutable Tuple Creation
        Pair<String, Integer> pair = Pair.with("Alice", 25);

        // Access Values
        System.out.println("Name: " + pair.getValue0()); // Alice
        System.out.println("Age: " + pair.getValue1()); // 25

        // Attempt to Modify (Not Possible)
        // pair.setValue0("Bob"); // Error: No such method in Immutable Tuples
    }
}

Mutable বনাম Immutable Tuples এর ব্যবহারযোগ্যতা

Mutable Tuples ব্যবহারের ক্ষেত্র

  1. ডেটা পরিবর্তনের প্রয়োজন হলে:
    • উদাহরণ: একটি অ্যালগরিদম যেখানে বারবার ভ্যালু আপডেট প্রয়োজন।
  2. অস্থায়ী ডেটা সংরক্ষণ:
    • ডেটা বারবার পরিবর্তনযোগ্য হলে Mutable Tuples উপযুক্ত।

Immutable Tuples ব্যবহারের ক্ষেত্র

  1. স্থির ডেটার জন্য:
    • উদাহরণ: কনফিগারেশন ডেটা বা কনস্ট্যান্ট ভ্যালু।
  2. ডেটা নিরাপত্তা নিশ্চিত করতে:
    • Immutable Tuples ব্যবহার করলে ডেটা ভুলক্রমে পরিবর্তন থেকে সুরক্ষিত থাকে।

Mutable এবং Immutable Tuples একত্রে ব্যবহার

কখনো কখনো Mutable এবং Immutable Tuples একত্রে ব্যবহার করা যেতে পারে। উদাহরণ:

import org.javatuples.Pair;

public class MixedTupleExample {
    public static void main(String[] args) {
        // Immutable Tuple
        Pair<String, Integer> immutablePair = Pair.with("Alice", 25);

        // Mutable Tuple
        MutablePair<String, Integer> mutablePair = new MutablePair<>("Bob", 30);

        // Combining Both
        System.out.println("Immutable Name: " + immutablePair.getValue0());
        System.out.println("Mutable Name: " + mutablePair.getFirst());

        // Updating Mutable Tuple
        mutablePair.setFirst("Charlie");
        System.out.println("Updated Mutable Name: " + mutablePair.getFirst());
    }
}

ব্যবহারযোগ্যতাMutable TuplesImmutable Tuples
যেখানে বারবার ডেটা পরিবর্তন প্রয়োজন।Mutable Tuples উপযুক্ত।অযথা ওভারহেড সৃষ্টি করতে পারে।
যেখানে ডেটা অপরিবর্তনীয় থাকা উচিত।ডেটা নিরাপত্তা কম।Immutable Tuples ব্যবহার করুন।
থ্রেড সেফটি প্রয়োজন।অপ্টিমাইজেশন প্রয়োজন।Immutable Tuples ডেটা নিরাপদ রাখতে সাহায্য করে।

Mutable Tuples ব্যবহারের আগে সাবধানতা অবলম্বন করা উচিত এবং Immutable Tuples ব্যবহার করলে ডেটার নিরাপত্তা নিশ্চিত হয়। আপনার প্রয়োজন অনুযায়ী সঠিক পদ্ধতি নির্বাচন করুন।

Content added By
Promotion

Are you sure to start over?

Loading...