টাপল (Tuple) হলো একটি ডেটা স্ট্রাকচার, যা বিভিন্ন ধরনের ডেটার সংগ্রহ ধারণ করতে পারে। এটি সাধারণত একটি অপরিবর্তনীয় (immutable) ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়। জাভায়, বিল্ট-ইন Tuple ক্লাস নেই, তবে আমরা তৃতীয় পক্ষের লাইব্রেরি বা কাস্টম ক্লাস ব্যবহার করে এটি ইমপ্লিমেন্ট করতে পারি।
Java তে Tuples কিভাবে কাজ করে?
১. Tuples কি?
- একটি Tuple হলো বিভিন্ন ডেটা টাইপের একটি সেট, যা একটি একক ইউনিট হিসেবে সংরক্ষণ করা হয়।
- উদাহরণ:
- Pair (2 items):
(String, Integer) - Triplet (3 items):
(String, Integer, Double)
- Pair (2 items):
২. 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 এর সুবিধা
Multiple Return Values:
- একটি মেথড থেকে একাধিক মান রিটার্ন করা।
public Pair<String, Integer> getStudentDetails() { return new Pair<>("Alice", 25); }- Data Grouping:
- সম্পর্কিত ডেটা একত্রে সংরক্ষণ করতে।
- Immutable Data Structure:
- Tuples সাধারণত অপরিবর্তনীয় (immutable), যা থ্রেড-সেফ।
- Generics Support:
- যে কোনো ডেটা টাইপ সংরক্ষণ করা যায়।
Tuples এর সীমাবদ্ধতা
- Readability:
- ডেটার জন্য নাম না থাকায় কোড কম বোধগম্য হতে পারে।
- Custom Classes Preference:
- জটিল ডেটা মডেলের ক্ষেত্রে কাস্টম ক্লাস প্রায়ই বেশি উপযুক্ত।
- জাভাতে Tuples ব্যবহার করে সহজে একাধিক ডেটা টাইপ সংরক্ষণ করা যায়।
- Apache Commons Lang এবং Javatuples লাইব্রেরি Tuples ব্যবহারে সাহায্য করে।
- কাস্টম ক্লাস ব্যবহার করে Tuples ইমপ্লিমেন্ট করা যেতে পারে।
ব্যবহার উপযোগিতা:
- ছোট এবং তাত্ক্ষণিক ডেটা স্ট্রাকচার জন্য Tuples।
- বড় ডেটা মডেল এবং জটিল লজিকের জন্য কাস্টম ক্লাস।
Content added By
Read more