لماذا لا تدعم مجموعات Google Multikeymap مثل مجموعات Apache؟

StackOverflow https://stackoverflow.com/questions/2372765

سؤال

هو قرار جوجل على غرار القرار SortedMultiSet (سؤال stackoverflow)أم أنه لا يوجد فائدة من MultiKeyMap?

أنا أدرك أن البديل MultiKeyMap يمكن أن يكون استخدام فئة مخصصة كمفتاح يحتوي على المفاتيح المتعددة كأعضاء في الفصل. على العكس من ذلك ، أحب مفهوم تحديد مفاتيح متعددة عند استدعاء الحصول على MultiKeyMap.

نسخة أباتشي من MultiKeyMap رائع ، لكنني في عداد المفقودين بشكل شديد الأداء الأولي ، وبالتالي نظرت في مجموعات Google للتنفيذ الحديث لها. إذا كان لدى شخص ما أي فكرة عن سبب عدم دعم Google بعد أو كان هناك بديل أفضل لذلك ، فيرجى الرد.

هل كانت مفيدة؟

المحلول

لدينا تنفيذ لطيف للغاية لخريطة من مستويين ، والتي نسميها "جدول" (K1 هو "مفتاح الصف" و K2 هو "مفتاح العمود") ، ولم نحصل عليه بعد. المفتاحان الماضيان ، رغم ذلك ، يتناقص عوائد.

نصائح أخرى

لمعلوماتك ، تم الرد على الإجابة المقبولة في مارس 2010 ، ولكن اعتبارًا من سبتمبر 2010 ، شملت جوافة Table.

أعتقد أن الأدوية العامة قد تكون showstopper للتنفيذ هنا. إذا نظرت إلى واجهة الخريطة فقط ، فهناك محددات عامة لنوع المفتاح (K) ونوع القيمة (V). لا أعتقد أنه سيكون من الممكن تحديده باستخدام الأدوية الجيرية بسهولة دون فصل التطبيقات إلى فئات متعددة (واحدة لكل عدد من المكونات الرئيسية).

ستحتاج إلى فصل لكل:

MultiKeyMap2<K1,K2,V>
MultiKeyMap3<K1,K2,K3,V>
MultiKeyMap4<K1,K2,K3,K4,V>
MultiKeyMap5<K1,K2,K3,K4,K5,V>

التنفيذ الأساسي هو القيام بما تقترحه بشكل أساسي (باستخدام فئة مخصصة). ومع ذلك ، فإنه لا ينشئ فئة رسميًا له ، كل شيء مضمّن. انها حقا تفاصيل التنفيذ. ولكن لاستخدام مجموعات Google ، فإن فئة مخصصة لأداء نفس الشيء ستعمل بنفس الطريقة التي أنا متأكد من تنفيذ HashCode () و equals ().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top