Key-Value Pair একটি ডেটা স্ট্রাকচার যেখানে প্রতিটি কির সাথে একটি ভ্যালু সম্পর্কিত থাকে। জাভাতে Tuples ব্যবহার করে সহজেই Key-Value Pairs তৈরি এবং পরিচালনা করা যায়। এটি Mapping, Caching, এবং Configuration ডেটা সংরক্ষণ করার জন্য উপযোগী।
Key-Value Pairs এর জন্য Tuples কেন ব্যবহার করবেন?
- সাধারণতা: Tuples একাধিক ডেটা টাইপ ধারণ করতে পারে।
- Mutable বা Immutable: Tuples সাধারণত Immutable হয়, যা Thread-Safe।
- লঘুসময় ব্যবস্থাপনা: একাধিক Key-Value Pair সংরক্ষণ সহজ করে।
Key-Value Pair এর জন্য Tuples এর উদাহরণ
১. Custom Pair Class
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<>("Age", 25);
System.out.println("Key: " + pair.getKey());
System.out.println("Value: " + pair.getValue());
}
}
আউটপুট:
Key: Age
Value: 25
২. JavaFX Util Pair ব্যবহার করে
JavaFX এর javafx.util.Pair ক্লাস সহজে Key-Value Pair সংরক্ষণ করতে ব্যবহার করা যায়।
import javafx.util.Pair;
public class JavaFXPairExample {
public static void main(String[] args) {
Pair<String, Double> pair = new Pair<>("Price", 99.99);
System.out.println("Key: " + pair.getKey());
System.out.println("Value: " + pair.getValue());
}
}
আউটপুট:
Key: Price
Value: 99.99
৩. Apache Commons Lang Pair ব্যবহার করে
Dependency যোগ করুন
<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 ApachePairExample {
public static void main(String[] args) {
Pair<String, String> pair = Pair.of("Username", "admin");
System.out.println("Key: " + pair.getLeft());
System.out.println("Value: " + pair.getRight());
}
}
আউটপুট:
Key: Username
Value: admin
৪. Vavr Tuples ব্যবহার করে
Dependency যোগ করুন
<dependency>
<groupId>io.vavr</groupId>
<artifactId>vavr</artifactId>
<version>0.10.4</version>
</dependency>
কোড উদাহরণ
import io.vavr.Tuple;
import io.vavr.Tuple2;
public class VavrTupleExample {
public static void main(String[] args) {
Tuple2<String, Integer> tuple = Tuple.of("Count", 42);
System.out.println("Key: " + tuple._1);
System.out.println("Value: " + tuple._2);
}
}
আউটপুট:
Key: Count
Value: 42
৫. Key-Value Pairs এর জন্য Map এবং Tuples একসাথে ব্যবহার
import javafx.util.Pair;
import java.util.HashMap;
import java.util.Map;
public class MapWithPairExample {
public static void main(String[] args) {
Map<String, Pair<String, String>> configMap = new HashMap<>();
configMap.put("db", new Pair<>("url", "jdbc:mysql://localhost:3306"));
configMap.put("user", new Pair<>("username", "admin"));
for (Map.Entry<String, Pair<String, String>> entry : configMap.entrySet()) {
System.out.println("Category: " + entry.getKey());
System.out.println("Key: " + entry.getValue().getKey());
System.out.println("Value: " + entry.getValue().getValue());
}
}
}
আউটপুট:
Category: db
Key: url
Value: jdbc:mysql://localhost:3306
Category: user
Key: username
Value: admin
Key-Value Pairs এর ব্যবহারক্ষেত্র
Configuration Management:
- অ্যাপ্লিকেশন সেটিংস সংরক্ষণ করতে।
Pair<String, String> dbConfig = new Pair<>("Database", "MySQL");Mapping:
- কোনো ডেটাকে অন্য ডেটার সাথে সম্পর্কিত করতে।
Pair<Integer, String> user = new Pair<>(101, "Alice");Caching:
- কুইক অ্যাক্সেস ডেটা সংরক্ষণ করতে।
Pair<String, Object> cacheEntry = new Pair<>("user_101", userObject);Database Interaction:
- Query Parameters সংরক্ষণ করতে।
Pair<String, Object> queryParam = new Pair<>("id", 123);
Tuples এর সুবিধা
- সাধারণতা: একই স্ট্রাকচারে বিভিন্ন ধরনের ডেটা সংরক্ষণ।
- Type Safety: জেনেরিক্স ব্যবহারের মাধ্যমে সঠিক ডেটা টাইপ নিশ্চিত।
- Readability: কম কোডে পরিষ্কার ডেটা মডেলিং।
Tuples এর সীমাবদ্ধতা
- Complex Structures: বড় এবং জটিল ডেটার জন্য Tuples আদর্শ নয়।
- Readability Issue: টাপল বড় হলে পড়া কঠিন।
- Custom Naming Absent: Key বা Value এর জন্য কাস্টম নাম নেই।
- Key-Value Pairs ব্যবস্থাপনার জন্য Tuples একটি সহজ এবং কার্যকর পদ্ধতি।
- JavaFX Pair, Apache Commons Pair, এবং Vavr Tuples লাইব্রেরিগুলি Tuples ব্যবহারে সহায়ক।
- ছোট ডেটা সংরক্ষণের জন্য Tuples কার্যকর, তবে জটিল ডেটার জন্য কাস্টম ক্লাস ভালো সমাধান।
Content added By
Read more