জাভা 9+
জাভা 9-তে, আপনি কেবল লিখতে পারেন: Map.entry(key, value)
অপরিবর্তনীয় জুটি তৈরি করতে।
দ্রষ্টব্য: এই পদ্ধতিটি কী বা মানগুলি শূন্য হতে দেয় না। আপনি নাল মান অনুমতি দিতে চান, তাহলে উদাহরণস্বরূপ, যদি আপনি এই পরিবর্তন করতে চান চাই: Map.entry(key, Optional.ofNullable(value))
।
জাভা 8+
জাভা 8-এ, আপনি javafx.util.Pair
একটি অপরিবর্তনীয়, সিরিয়ালাইজড জুটি তৈরি করতে আরও সাধারণ-উদ্দেশ্য ব্যবহার করতে পারেন । এই শ্রেণীর নেই নাল কী ও নাল মান অনুমতি দেয়। (জাভা 9 এ, এই শ্রেণিটি javafx.base
মডিউলটিতে অন্তর্ভুক্ত করা হয়েছে )। সম্পাদনা: জাভা ১১-এর হিসাবে, জাভাফএক্স জেডিকে থেকে ডিক্লোল করা হয়েছে, সুতরাং আপনার অতিরিক্ত মেভেন আর্টিফ্যাক্ট org.openjfx: জাভাফেক্স-বেসের প্রয়োজন হবে।
জাভা 6+
জাভা 6 এবং তার চেয়ে বেশি ক্ষেত্রে, আপনি AbstractMap.SimpleImmutableEntry
একটি অপরিবর্তনীয় জুটির জন্য, বা এমন AbstractMap.SimpleEntry
কোনও জোড়ের জন্য , যার মান পরিবর্তন করা যেতে পারে তার জন্য আরও ভার্বোজ ব্যবহার করতে পারেন । এই ক্লাসগুলি নাল কীগুলি এবং নাল মানগুলিকেও মঞ্জুরি দেয় এবং এটি সিরিয়ালাইজযোগ্য।
অ্যান্ড্রয়েড
আপনি যদি অ্যান্ড্রয়েডের জন্য লিখছেন তবে কেবল Pair.create(key, value)
একটি অপরিবর্তনীয় জুটি তৈরি করতে ব্যবহার করুন ।
অ্যাপাচি কমন্স
Apache Commons Lang
Pair.of(key, value)
অপরিবর্তনীয়, তুলনামূলক, সিরিয়ালাইজযোগ্য জুটি তৈরি করতে সহায়ক সরবরাহ করে ।
গ্রহগ্রহের সংগ্রহ
আপনি যদি এমন জুটি ব্যবহার করেন যা আদিম থাকে, Eclipse সংগ্রহ জুড়ি বেশ কয়েকটি দক্ষ দক্ষ আদিম শ্রেণীর ক্লাস সরবরাহ করে যা সমস্ত অদক্ষ অটো-বক্সিং এবং অটো-আনবক্সিং এড়াতে পারে।
উদাহরণস্বরূপ, আপনি ব্যবহার করতে পারে PrimitiveTuples.pair(int, int)
একটি তৈরি করতে IntIntPair
, অথবা PrimitiveTuples.pair(float, long)
একটি তৈরি করতে FloatLongPair
।
প্রকল্প লম্বোক
প্রজেক্ট লম্বোক ব্যবহার করে আপনি কেবল লেখার মাধ্যমে একটি অপরিবর্তনীয় জোড় শ্রেণি তৈরি করতে পারেন:
@Value
public class Pair<K, V> {
K key;
V value;
}
Lombok কন্সট্রাকটর, getters মধ্যে পূরণ হবে equals()
, hashCode()
এবং toString()
উত্পন্ন বাইটকোড স্বয়ংক্রিয়ভাবে আপনার জন্য পদ্ধতি। আপনি একটি স্ট্যাটিক কারখানা পদ্ধতি পরিবর্তে একটি কন্সট্রাকটর, যেমন চান, একটি Pair.of(k, v)
, সহজভাবে টীকা পরিবর্তন: @Value(staticConstructor = "of")
।
অন্যভাবে
যদি উপরের কোনও সমাধান আপনার নৌকাটিকে ভাসমান না করে থাকে তবে আপনি কেবল নীচের কোডটি অনুলিপি করে আটকে দিতে পারবেন (যা গ্রহণযোগ্য উত্তরের তালিকাভুক্ত শ্রেণীর বিপরীতে নালপয়েন্টার এক্সেকশনগুলির বিরুদ্ধে রক্ষী):
import java.util.Objects;
public class Pair<K, V> {
public final K key;
public final V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public boolean equals(Object o) {
return o instanceof Pair && Objects.equals(key, ((Pair<?,?>)o).key) && Objects.equals(value, ((Pair<?,?>)o).value);
}
public int hashCode() {
return 31 * Objects.hashCode(key) + Objects.hashCode(value);
}
public String toString() {
return key + "=" + value;
}
}