Tuples এর সাধারণ স্ট্রাকচার

Java তে Tuples ব্যবহার - জাভা টাপল (Java Tuples) - Java Technologies

444

টাপল (Tuple) হলো একটি ডেটা স্ট্রাকচার, যা বিভিন্ন ধরনের ডেটার সংগ্রহ ধারণ করতে পারে। এটি সাধারণত একটি অপরিবর্তনীয় (immutable) ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়। জাভায়, বিল্ট-ইন Tuple ক্লাস নেই, তবে আমরা তৃতীয় পক্ষের লাইব্রেরি বা কাস্টম ক্লাস ব্যবহার করে এটি ইমপ্লিমেন্ট করতে পারি।


Java তে Tuples কিভাবে কাজ করে?

১. Tuples কি?

  • একটি Tuple হলো বিভিন্ন ডেটা টাইপের একটি সেট, যা একটি একক ইউনিট হিসেবে সংরক্ষণ করা হয়।
  • উদাহরণ:
    • Pair (2 items): (String, Integer)
    • Triplet (3 items): (String, Integer, Double)

২. Tuples কেন ব্যবহার করবেন?

  • মাল্টিপল ভ্যালু একটি একক ইউনিটে সংরক্ষণ করার জন্য।
  • ডেটা ট্রান্সফার সহজ করতে।
  • একাধিক মান মেথড থেকে রিটার্ন করার জন্য।

Tuples এর সাধারণ স্ট্রাকচার

২.১. Pair

উদাহরণ:

public class Pair<K, V> {
    private final K key;
    private final V value;

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }

    public K getKey() {
        return key;
    }

    public V getValue() {
        return value;
    }

    @Override
    public String toString() {
        return "(" + key + ", " + value + ")";
    }
}

ব্যবহার:

public class Main {
    public static void main(String[] args) {
        Pair<String, Integer> pair = new Pair<>("Alice", 25);
        System.out.println("Key: " + pair.getKey());
        System.out.println("Value: " + pair.getValue());
    }
}

আউটপুট:

Key: Alice
Value: 25

২.২. Triplet

উদাহরণ:

public class Triplet<K, V, T> {
    private final K first;
    private final V second;
    private final T third;

    public Triplet(K first, V second, T third) {
        this.first = first;
        this.second = second;
        this.third = third;
    }

    public K getFirst() {
        return first;
    }

    public V getSecond() {
        return second;
    }

    public T getThird() {
        return third;
    }

    @Override
    public String toString() {
        return "(" + first + ", " + second + ", " + third + ")";
    }
}

ব্যবহার:

public class Main {
    public static void main(String[] args) {
        Triplet<String, Integer, Double> triplet = new Triplet<>("Alice", 25, 85.5);
        System.out.println("First: " + triplet.getFirst());
        System.out.println("Second: " + triplet.getSecond());
        System.out.println("Third: " + triplet.getThird());
    }
}

আউটপুট:

First: Alice
Second: 25
Third: 85.5

তৃতীয় পক্ষের লাইব্রেরি দিয়ে Tuples

১. Apache Commons Lang

ডিপেনডেন্সি:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

ব্যবহার:

import org.apache.commons.lang3.tuple.Pair;

public class Main {
    public static void main(String[] args) {
        Pair<String, Integer> pair = Pair.of("Alice", 25);
        System.out.println("Key: " + pair.getLeft());
        System.out.println("Value: " + pair.getRight());
    }
}

আউটপুট:

Key: Alice
Value: 25

২. Javatuples Library

ডিপেনডেন্সি:

<dependency>
    <groupId>org.javatuples</groupId>
    <artifactId>javatuples</artifactId>
    <version>1.2</version>
</dependency>

ব্যবহার:

import org.javatuples.Triplet;

public class Main {
    public static void main(String[] args) {
        Triplet<String, Integer, Double> triplet = new Triplet<>("Alice", 25, 85.5);
        System.out.println("First: " + triplet.getValue0());
        System.out.println("Second: " + triplet.getValue1());
        System.out.println("Third: " + triplet.getValue2());
    }
}

আউটপুট:

First: Alice
Second: 25
Third: 85.5

Tuples এর সুবিধা

  1. Multiple Return Values:

    • একটি মেথড থেকে একাধিক মান রিটার্ন করা।
    public Pair<String, Integer> getStudentDetails() {
        return new Pair<>("Alice", 25);
    }
    
  2. Data Grouping:
    • সম্পর্কিত ডেটা একত্রে সংরক্ষণ করতে।
  3. Immutable Data Structure:
    • Tuples সাধারণত অপরিবর্তনীয় (immutable), যা থ্রেড-সেফ।
  4. Generics Support:
    • যে কোনো ডেটা টাইপ সংরক্ষণ করা যায়।

Tuples এর সীমাবদ্ধতা

  1. Readability:
    • ডেটার জন্য নাম না থাকায় কোড কম বোধগম্য হতে পারে।
  2. Custom Classes Preference:
    • জটিল ডেটা মডেলের ক্ষেত্রে কাস্টম ক্লাস প্রায়ই বেশি উপযুক্ত।

  • জাভাতে Tuples ব্যবহার করে সহজে একাধিক ডেটা টাইপ সংরক্ষণ করা যায়।
  • Apache Commons Lang এবং Javatuples লাইব্রেরি Tuples ব্যবহারে সাহায্য করে।
  • কাস্টম ক্লাস ব্যবহার করে Tuples ইমপ্লিমেন্ট করা যেতে পারে।

ব্যবহার উপযোগিতা:

  • ছোট এবং তাত্ক্ষণিক ডেটা স্ট্রাকচার জন্য Tuples।
  • বড় ডেটা মডেল এবং জটিল লজিকের জন্য কাস্টম ক্লাস।
Content added By
Promotion

Are you sure to start over?

Loading...