Javatuples হলো একটি তৃতীয় পক্ষের লাইব্রেরি, যা জাভাতে Tuple ব্যবহার করার সহজ এবং কার্যকর উপায় সরবরাহ করে। এটি বিভিন্ন ধরনের এবং বিভিন্ন সংখ্যার মান গোষ্ঠীভুক্ত করতে সাহায্য করে। Javatuples লাইব্রেরিতে 1 থেকে 10 টি ভ্যালু ধারণ করার জন্য বিভিন্ন Tuple ক্লাস সরবরাহ করা হয়েছে, যেমন Pair, Triplet, Quartet, ইত্যাদি।
Javatuples ইনস্টলেশন
Maven Dependency:
Javatuples ব্যবহার করতে আপনার প্রকল্পে Maven Dependency যোগ করুন:
<dependency>
<groupId>org.javatuples</groupId>
<artifactId>javatuples</artifactId>
<version>1.2</version>
</dependency>
Gradle Dependency:
implementation 'org.javatuples:javatuples:1.2'
Javatuples-এর Tuple Classes
Javatuples-এ প্রধান Tuple ক্লাসগুলো:
- Pair: দুটি ভ্যালু ধারণ করে।
- Triplet: তিনটি ভ্যালু ধারণ করে।
- Quartet: চারটি ভ্যালু ধারণ করে।
- Quintet: পাঁচটি ভ্যালু ধারণ করে।
- Sextet: ছয়টি ভ্যালু ধারণ করে।
- ... (10 পর্যন্ত Tuple ক্লাস সরবরাহ করা হয়েছে)
Javatuples-এর সাধারণ ব্যবহার
১. Pair (দুটি ভ্যালু)
import org.javatuples.Pair;
public class PairExample {
public static void main(String[] args) {
// একটি Pair তৈরি
Pair<String, Integer> pair = Pair.with("Alice", 25);
// মান অ্যাক্সেস করা
System.out.println("Name: " + pair.getValue0()); // Alice
System.out.println("Age: " + pair.getValue1()); // 25
}
}
২. Triplet (তিনটি ভ্যালু)
import org.javatuples.Triplet;
public class TripletExample {
public static void main(String[] args) {
// একটি Triplet তৈরি
Triplet<String, Integer, String> triplet = Triplet.with("Alice", 25, "Engineer");
// মান অ্যাক্সেস করা
System.out.println("Name: " + triplet.getValue0()); // Alice
System.out.println("Age: " + triplet.getValue1()); // 25
System.out.println("Profession: " + triplet.getValue2()); // Engineer
}
}
৩. Quartet (চারটি ভ্যালু)
import org.javatuples.Quartet;
public class QuartetExample {
public static void main(String[] args) {
// একটি Quartet তৈরি
Quartet<String, Integer, String, Boolean> quartet = Quartet.with("Alice", 25, "Engineer", true);
// মান অ্যাক্সেস করা
System.out.println("Name: " + quartet.getValue0()); // Alice
System.out.println("Age: " + quartet.getValue1()); // 25
System.out.println("Profession: " + quartet.getValue2()); // Engineer
System.out.println("Is Active: " + quartet.getValue3()); // true
}
}
৪. Tuple থেকে নতুন Tuple তৈরি করা
import org.javatuples.Pair;
public class ModifyTupleExample {
public static void main(String[] args) {
Pair<String, Integer> pair = Pair.with("Alice", 25);
// নতুন Tuple তৈরি করা
Pair<String, Integer> updatedPair = pair.setAt0("Bob");
System.out.println("Updated Name: " + updatedPair.getValue0()); // Bob
}
}
৫. Tuple এবং Collection এর মধ্যে রূপান্তর
Tuple থেকে List রূপান্তর:
import org.javatuples.Pair;
import java.util.List;
public class TupleToListExample {
public static void main(String[] args) {
Pair<String, Integer> pair = Pair.with("Alice", 25);
// Tuple থেকে List
List<Object> list = pair.toList();
System.out.println("List: " + list); // [Alice, 25]
}
}
List থেকে Tuple রূপান্তর:
import org.javatuples.Pair;
import java.util.Arrays;
public class ListToTupleExample {
public static void main(String[] args) {
// List থেকে Tuple তৈরি
Pair<String, Integer> pair = Pair.fromCollection(Arrays.asList("Alice", 25));
System.out.println("Name: " + pair.getValue0()); // Alice
System.out.println("Age: " + pair.getValue1()); // 25
}
}
Javatuples-এর কিছু গুরুত্বপূর্ণ মেথড
| মেথড | বর্ণনা |
|---|---|
getValue(index) | নির্দিষ্ট ইনডেক্সের মান ফেরত দেয়। |
setAt(index, value) | একটি নতুন Tuple তৈরি করে নির্দিষ্ট ইনডেক্সে মান সেট করে। |
toList() | Tuple থেকে List তৈরি করে। |
fromCollection(collection) | Collection থেকে Tuple তৈরি করে। |
add(value) | Tuple-এ নতুন মান যোগ করে একটি বড় Tuple তৈরি করে। |
Javatuples-এর ব্যবহারযোগ্যতা
- একাধিক মান রিটার্ন করা:
- একটি মেথড থেকে একাধিক মান ফেরত দেওয়ার জন্য।
- ডেটা গোষ্ঠীভুক্ত করা:
- একাধিক ধরনের ডেটা একসঙ্গে সংরক্ষণ করতে।
- Immutable Data:
- Tuple immutable হওয়ায় এটি নিরাপদ এবং সঠিক।
- Collection Integration:
- সহজেই Collection এর সাথে Tuple রূপান্তর করা যায়।
Javatuples-এর সুবিধা এবং অসুবিধা
| সুবিধা | অসুবিধা |
|---|---|
| একাধিক মান একত্রে প্যাকেজ করতে সুবিধা। | মান অ্যাক্সেস করার জন্য ইনডেক্স ব্যবহার কিছুটা জটিল। |
| Immutable হওয়ায় ডেটা নিরাপদ। | বড় Tuple (5+ মান) পড়া বা ব্যবস্থাপনা কঠিন। |
| Collection এর সাথে সহজ ইন্টিগ্রেশন। | জাভার স্ট্যান্ডার্ড লাইব্রেরিতে বিল্ট-ইন নয়। |
Javatuples লাইব্রেরি জাভাতে Tuple ইমপ্লিমেন্ট করার একটি শক্তিশালী এবং সহজ উপায়। এটি একাধিক মান একত্রে সংরক্ষণ, পাস করা, এবং রিটার্ন করার জন্য কার্যকর। ছোট এবং দ্রুত সমাধানের জন্য Javatuples অসাধারণ, তবে বড় এবং জটিল Tuple ব্যবস্থাপনার জন্য অন্য ডেটা স্ট্রাকচার বিবেচনা করা উচিত।
Read more