Nested Tuple হলো একটি Tuple যা অন্য একটি Tuple ধারণ করে। এটি Javatuples লাইব্রেরি ব্যবহার করে সহজেই তৈরি এবং পরিচালনা করা যায়। Nested Tuples এর মাধ্যমে জটিল ডেটা স্ট্রাকচার গঠন করা যায়।
Nested Tuple তৈরি করা
উদাহরণ: একটি Tuple যেখানে একটি Pair এবং Triplet রয়েছে।
import org.javatuples.Pair;
import org.javatuples.Triplet;
import org.javatuples.Tuple;
public class NestedTupleExample {
public static void main(String[] args) {
// Nested Tuple তৈরি
Pair<String, Integer> person = Pair.with("Alice", 30);
Triplet<String, String, Double> product = Triplet.with("Laptop", "Electronics", 799.99);
Tuple nestedTuple = Pair.with(person, product);
System.out.println("Nested Tuple: " + nestedTuple);
}
}
আউটপুট:
Nested Tuple: ([Alice, 30], [Laptop, Electronics, 799.99])
Nested Tuple এর Access
Nested Tuple এর উপাদানগুলো getValueX() মেথডের মাধ্যমে অ্যাক্সেস করা হয়। উপাদানটি যদি অন্য Tuple হয়, তাহলে তার উপাদানগুলোও একই পদ্ধতিতে অ্যাক্সেস করা হয়।
উদাহরণ: Nested Tuple থেকে ডেটা অ্যাক্সেস করা
import org.javatuples.Pair;
import org.javatuples.Triplet;
public class AccessNestedTuple {
public static void main(String[] args) {
// Nested Tuple তৈরি
Pair<String, Integer> person = Pair.with("Alice", 30);
Triplet<String, String, Double> product = Triplet.with("Laptop", "Electronics", 799.99);
Pair<Pair<String, Integer>, Triplet<String, String, Double>> nestedTuple = Pair.with(person, product);
// প্রথম Tuple (Person) অ্যাক্সেস করা
Pair<String, Integer> accessedPerson = nestedTuple.getValue0();
System.out.println("Name: " + accessedPerson.getValue0());
System.out.println("Age: " + accessedPerson.getValue1());
// দ্বিতীয় Tuple (Product) অ্যাক্সেস করা
Triplet<String, String, Double> accessedProduct = nestedTuple.getValue1();
System.out.println("Product Name: " + accessedProduct.getValue0());
System.out.println("Category: " + accessedProduct.getValue1());
System.out.println("Price: " + accessedProduct.getValue2());
}
}
আউটপুট:
Name: Alice
Age: 30
Product Name: Laptop
Category: Electronics
Price: 799.99
Nested Tuple Manipulation
Nested Tuple Immutable হওয়ার কারণে আপনি addAtX(), removeFromX(), এবং setAtX() ব্যবহার করে একটি নতুন Tuple তৈরি করতে পারেন।
১. addAtX() দিয়ে নতুন মান যোগ করা
import org.javatuples.Pair;
import org.javatuples.Triplet;
public class AddNestedTuple {
public static void main(String[] args) {
// Nested Tuple তৈরি
Pair<String, Integer> person = Pair.with("Alice", 30);
Triplet<String, String, Double> product = Triplet.with("Laptop", "Electronics", 799.99);
Pair<Pair<String, Integer>, Triplet<String, String, Double>> nestedTuple = Pair.with(person, product);
// নতুন মান যোগ করা
Triplet<Pair<String, Integer>, Triplet<String, String, Double>, String> updatedTuple = nestedTuple.addAt2("Delivered");
System.out.println("Updated Tuple: " + updatedTuple);
}
}
আউটপুট:
Updated Tuple: ([Alice, 30], [Laptop, Electronics, 799.99], Delivered)
২. setAtX() দিয়ে মান পরিবর্তন
import org.javatuples.Pair;
import org.javatuples.Triplet;
public class UpdateNestedTuple {
public static void main(String[] args) {
// Nested Tuple তৈরি
Pair<String, Integer> person = Pair.with("Alice", 30);
Triplet<String, String, Double> product = Triplet.with("Laptop", "Electronics", 799.99);
Pair<Pair<String, Integer>, Triplet<String, String, Double>> nestedTuple = Pair.with(person, product);
// নতুন মান সেট করা
Triplet<String, String, Double> updatedProduct = Triplet.with("Smartphone", "Electronics", 699.99);
Pair<Pair<String, Integer>, Triplet<String, String, Double>> updatedTuple = nestedTuple.setAt1(updatedProduct);
System.out.println("Updated Tuple: " + updatedTuple);
}
}
আউটপুট:
Updated Tuple: ([Alice, 30], [Smartphone, Electronics, 699.99])
৩. removeFromX() দিয়ে মান সরানো
import org.javatuples.Pair;
import org.javatuples.Triplet;
public class RemoveNestedTuple {
public static void main(String[] args) {
// Nested Tuple তৈরি
Pair<String, Integer> person = Pair.with("Alice", 30);
Triplet<String, String, Double> product = Triplet.with("Laptop", "Electronics", 799.99);
Pair<Pair<String, Integer>, Triplet<String, String, Double>> nestedTuple = Pair.with(person, product);
// প্রথম Tuple সরানো
Triplet<Triplet<String, String, Double>, String, String> modifiedTuple = nestedTuple.addAt2("Completed").removeFrom0();
System.out.println("Modified Tuple: " + modifiedTuple);
}
}
আউটপুট:
Modified Tuple: ([Laptop, Electronics, 799.99], Completed)
Nested Tuple এর সুবিধা
- জটিল ডেটা গঠন: একাধিক স্তরের ডেটা সহজে ম্যানেজ করা যায়।
- Immutable Structure: Nested Tuples পরিবর্তন করা যায় না, যা ডেটার সুরক্ষা নিশ্চিত করে।
- Simple Manipulation:
addAtX(),setAtX(), এবংremoveFromX()মেথড ব্যবহার করে সহজে ডেটা পরিচালনা করা যায়।
Nested Tuple ব্যবহার করে জটিল ডেটা স্ট্রাকচার গঠন এবং পরিচালনা সহজ করা যায়। Javatuples লাইব্রেরি সরাসরি Tuples নির্মাণ, Access, এবং Manipulation এর জন্য একাধিক ফিচার সরবরাহ করে। Immutable ডেটা এবং টাইপ সেফ কাঠামোর কারণে এটি জাভা প্রোগ্রামিংয়ে একটি কার্যকর সমাধান।
Read more