تريماب:فرز قيم الخريطة مع مفاتيح تتحرك جنبا إلى جنب مع القيم

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

  •  23-09-2019
  •  | 
  •  

سؤال

لدي خريطة الشجرة التالية:

TreeMap<Integer, Double> map;

القيم المزدوجة ليست فريدة من نوعها.

أنا أكرر من خلال الخريطة باستخدام مفاتيح عدد صحيح وظائف فيرستنتري () و هيغرينتري () وتعديل القيم المزدوجة.

الآن أريد أن قائمة قيم أزواج في ترتيب خفض القيم المزدوجة.ما هي أفضل طريقة للقيام بذلك?

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

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

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

المحلول

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

ولكن قد يستخدم قالب الويب ميزات مخصصة ثم قم بإنشاء تبعية بين الموقع والحل (الحلوصات) التي تحتوي على هذه الميزات.قد تأتي هذه التبعيات من حقيقة أن الميزات تحتوي على عناصر GransodicetagCode التي تصبح أحكام الملفات والموقع بعد ذلك تعتمد على هذه الملفات الموجودة في نظام الملفات طالما أن الملفات غير غير مهمة أو قد تحتوي على تعريفات قائمة.

إذا كنت تريد صفحة مخصصة وصفحة ماجستير، ولكن بدون اعتماد على الميزة، فلا يجب عليك إنشاء الصفحة والصفحة الرئيسية باستخدام التعليمات البرمجية.

نصائح أخرى

الحل الواضح هو الحصول على مجموعة من الزوجي (ربما عن طريق entrySet ثم getValue - فئة خريطة الشجرة لديها values() الطريقة ، يمكنك فقط استخدام ذلك) ، والمضي قدما لفرزها (باستخدام Collections.sort أو Arrays.sort) - هذا من شأنه ، ومع ذلك ، تأخذ س(ن تسجيل الدخول) الوقت.

لست متأكدا من أنه يمكنك القيام بذلك بطريقة أكثر ذكاء (==أسرع) ، إلا إذا قمت بتغيير بنية البيانات تماما.ومع ذلك ، فإن الطريقة الوحيدة التي أرى هذا يحدث مع بنية بيانات أخرى هو الحفاظ على المجمع على عدد صحيح ومزدوجة وكتابة اثنين من المقارنة - واحد الذي يقارن integer واحد الذي يقارن أولا من قبل double ثم من قبل integer.ستكون خريطة الشجرة الأصلية التي تستخدمها هي نفسها ولكنك ستتمكن من فصل خريطة شجرة أخرى عنها ، مرتبة حسب المقارنة الثانية.فصل لا تزال تأخذ س (ن لوغن) الوقت على الرغم من.

ما يمكنك فعله هو ما يلي: استخدم دخول للتكرار من خلال الإدخالات. ضعهم في قائمة. فرز التاريخ مع المقارنة الصحيح بعد ذلك.

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