[Java] UnmodifiableMap (مجموعات جافا) ضد ImmutableMap (جوجل)


Answers

إلقاء نظرة على ImmutableMap JavaDoc: doc

هناك معلومات حول ذلك هناك:

على عكس Collections.unmodifiableMap (java.util.Map) ، وهو عبارة عن عرض لخريطة منفصلة يمكن أن تتغير ، فإن مثيل ImmutableMap يحتوي على بياناته الخاصة ولن يتغير أبدًا. ImmutableMap ملائم للخرائط العامة الثابتة النهائية ("خرائط ثابتة") ويتيح لك أيضًا إنشاء "نسخة دفاعية" بسهولة من خريطة تم تقديمها إلى صفك بواسطة أحد المتصلين.

Question

هذا السؤال لديه بالفعل إجابة هنا:

سياق الكلام

أحتاج إلى إرجاع مرجع إلى خريطة أستخدمها في ذاكرة تخزين مؤقت للبيانات ، وأود التأكد من أنه لا يمكن لأي شخص تعديل مرجعه.

سؤال

لقد رأيت الكثير من الإشارات إلى UnmodifiableMap و ImmutableMap عبر الإنترنت ، لكني لا أرى أي شيء يقارن / يقاومها. أعتقد أن هناك سببًا وجيهًا لإنشاء Google / Guava لنسخة خاصة بها - فهل يمكن لأحدهم أن يخبرني ما هو؟




لا يقبل null قيم null بينما Collections.unmodifiableMap() يعمل. بالإضافة إلى ذلك لن تتغير أبداً بعد البناء ، في حين أن UnmodifiableMap قد. من JavaDoc:

خريطة غير قابلة للتغيير ، تستند إلى التجزئة مع أمر موثوق به يحدده المستخدم. لا يسمح مفاتيح أو قيم فارغة.

على عكس Collections.unmodifiableMap (java.util.Map) ، وهو عبارة عن عرض لخريطة منفصلة يمكن أن تتغير ، فإن مثيل ImmutableMap يحتوي على بياناته الخاصة ولن يتغير أبدًا. ImmutableMap ملائم للخرائط العامة الثابتة النهائية ("خرائط ثابتة") ويتيح لك أيضًا إنشاء "نسخة دفاعية" بسهولة من خريطة تم تقديمها إلى صفك بواسطة أحد المتصلين.






Links