طريقة أسرع وأكثر كفاءة للبحث عن زوج القيمة الرئيسية في جافا؟
سؤال
تنصل:
هذا السؤال لم يكن المقصود أن يكون جدليا!
ما هي أسرع وأقل طريقة استنزاف للذاكرة للبحث عن زوج القيمة الرئيسية؟ سأقوم بتخزين العناصر في قيمة مثل العلاقة وأحتاج إلى الوصول إليها بسرعة. هل يجب علي استخدام قاعدة بيانات SQLite؟ خريطة؟ علامة تصنيف؟ هشماب؟ يرجى إعطاء بعض المزايا/عيوب استخدام أي طريقة للبحث.
المحلول
أي قائم على التجزئة Map
الهيكل هو السبيل للذهاب طالما دالة تجزئة للمفتاح فعال. يمكنك استخدام معرف القيمة: S كنتيجة للبحث للحفاظ على الذاكرة أثناء البحث.
إذا كانت بياناتك موجودة بالفعل في قاعدة البيانات ، فيمكنك ترك هذا البحث بالكامل إلى RDBMS ، بعد كل شيء أنها صنعت لهذه الأشياء.
نصائح أخرى
إذا كانت بياناتك في الذاكرة ، Map
بشكل عام هم أصدقاؤك - فهي مخصصة لهذا.
لا تستخدم أ Hashtable
ومع ذلك. إنه أبطأ بكثير من تطبيقات الخرائط الأحدث. نظرًا لأن أساليبها متزامنة ، والتي ليست مطلوبة معظم الوقت (وعند الحاجة ، هناك بديل أفضل بكثير - انظر أدناه).
في السياق المفرد ، HashMap
ربما ستكون على ما يرام.
إذا كنت بحاجة إلى سلامة الخيط ، فاستخدم أ ConcurrentHashMap
.