هاشماب هي واحدة من هياكل البيانات الأكثر شعبية في جافا. إنه تنفيذ لواجهة الخريطة التي تخزن البيانات بتنسيق قيمة المفتاح. هذا يسمح لك بالوصول بسرعة إلى العناصر عن طريق المفتاح. ومع ذلك ، قد يكون من الضروري في بعض الأحيان الوصول إلى العناصر حسب القيمة. في هذه المقالة ، سنلقي نظرة على طريقة بسيطة لإخراج العناصر حسب القيمة في خريطة التجزئة.
أولا ، نحن بحاجة إلى إنشاء هاشماب وملء مع البيانات. على سبيل المثال ، لنفترض أن لدينا خريطة تجزئة بأسماء الطلاب ودرجاتهم:
طلاب هاشماب = هاشماب جديد();
الطلاب.وضع ("إيفان" ، 5);
الطلاب.وضع ("ماريا" ، 4);
الطلاب.وضع ("أليكسي" ، 3);
الطلاب.وضع ("إيلينا" ، 5);
الطلاب.وضع ("أندري" ، 4);
الآن بعد أن أصبح لدينا خريطة تجزئة مأهولة ، يمكننا المتابعة لإخراج العناصر حسب القيمة. للقيام بذلك ، سوف نستخدم ل-كل حلقة:
- كيفية العمل مع عناصر هاشماب: طريقة سهلة
- ما هو هاشماب ولماذا استخدامه
- كيفية إضافة عناصر إلى خريطة التجزئة
- كيفية إخراج العناصر حسب القيمة في خريطة التجزئة
- سؤال وجواب
- كيف يمكنني عرض جميع العناصر من خريطة التجزئة على الشاشة?
- كيف يمكنني إخراج عناصر هاشماب التي تساوي قيمتها قيمة معينة?
- كيف يمكنني إخراج مفاتيح هاشماب التي تساوي قيمتها قيمة معينة?
- كيف يمكنني إخراج عنصر هاشماب الأول الذي قيمة تساوي قيمة معينة?
- كيف يمكنني إخراج جميع عناصر هاشماب التي تكون قيمها في نطاق معين?
- هل من الممكن إخراج عناصر هاشماب التي لا تساوي قيمها قيمة معينة?
كيفية العمل مع عناصر هاشماب: طريقة سهلة
هاشماب هو بنية البيانات التي تسمح لك لتخزين العناصر كأزواج قيمة المفتاح. يجب أن تكون المفاتيح فريدة ، ويمكن أن تكون القيم من أي نوع. في جافا ، يتم توفير طرق مختلفة للعمل مع هاشماب.
فيما يلي بعض الطرق الأكثر استخداما:
- وضع (مفتاح ، قيمة) - يضيف عنصرا إلى خريطة التجزئة بالمفتاح والقيمة المحددين.
- الحصول على (مفتاح) - إرجاع قيمة العنصر مع المفتاح المحدد.
- يحتوي على مفتاح (مفتاح) — يتحقق ما إذا كان هاشماب يحتوي على عنصر مع المفتاح المحدد.
- يحتوي على القيمة (القيمة) — يتحقق مما إذا كانت خريطة التجزئة تحتوي على عنصر بالقيمة المحددة.
- إزالة (مفتاح) - يزيل العنصر بالمفتاح المحدد من خريطة التجزئة.
- الحجم—) - إرجاع عدد العناصر في خريطة التجزئة.
- كيسيت—) - إرجاع مجموعة من جميع المفاتيح في هاشماب.
- القيم () - إرجاع مجموعة جميع القيم في خريطة التجزئة.
باستخدام هذه الأساليب ، يمكنك العمل بسهولة مع عناصر هاشماب. على سبيل المثال ، لإخراج جميع المفاتيح والقيم ، يمكنك استخدام التعليمات البرمجية التالية:
ل (مفتاح السلسلة: هاشماب.مجموعة المفاتيح ()) {نتيجة لتنفيذ هذا الرمز ، سيكون الإخراج:
المفتاح: أبل ، القيمة: 5
- المفتاح: موز, القيمة: 3
المفتاح: برتقالي ، القيمة: 7
- جمع في أي ترتيب معين: العناصر في هاشماب ليست مضمونة لتكون في الترتيب الذي تم إضافتها.
كيفية إضافة عناصر إلى خريطة التجزئة
هاشماب هي واحدة من التطبيقات الأكثر شيوعا من واجهة الخريطة في جافا. يسمح لك بتخزين أزواج القيمة الرئيسية ويوفر وصولا سريعا إلى القيم الرئيسية.
تتبع إضافة عناصر إلى خريطة التجزئة الخطوات التالية:
إنشاء مثيل هاشماب تحديد أنواع المفاتيح والقيم:
| خريطة هاشماب = خريطة هاشماب الجديدة (); | |
|---|---|
| استخدم طريقة وضع () لإضافة زوج قيمة مفتاح إلى خريطة التجزئة: | |
| خريطة.وضع (مفتاح ، قيمة); |
كرر الخطوات من 2 إلى 3 لكل عنصر تريد إضافته إلى خريطة التجزئة.
مثال:
طلاب هاشماب = هاشماب جديد();
الطلاب.وضع ("إيفانوف" ، 25);
الطلاب.وضع ("بتروف" ، 30);
الطلاب.وضع ("سيدوروف" ، 28);
الآن في هاشماب ، "الطلاب" يحتوي على القيم التالية:
مفتاح
المعنى
إيفانوف
25
بتروف
30
سيدوروف
28
وبالتالي ، قمت بإضافة العناصر بنجاح إلى خريطة التجزئة. الآن يمكنك استخدام المفاتيح للحصول على القيم المقابلة من هاشماب.
كيفية إخراج العناصر حسب القيمة في خريطة التجزئة
هاشماب هو فئة في جافا التي تمثل تنفيذ واجهة الخريطة. هاشماب مخازن البيانات في شكل أزواج قيمة المفتاح ويسمح لك بسرعة الحصول على وتغيير القيم لمفتاح معين.
في بعض الأحيان يكون من الضروري الحصول على عناصر هاشماب حسب القيمة بدلا من المفتاح. في هذه المقالة ، سننظر في بعض الطرق البسيطة للقيام بذلك.
1. التكرار من خلال عناصر هاشماب باستخدام حلقة:
HashMap map = new HashMap();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
int valueToFind = 2;
for (Map.Entry entry : map.entrySet()) {
if (entry.getValue() == valueToFind) {
System.out.println(entry.getKey());
}
}
2. Использование метода values() для получения всех значений HashMap:
HashMap map = new HashMap();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
int valueToFind = 2;
for (Integer value : map.values()) {
if (value == valueToFind) {
System.out.println(map.keySet());
}
}
3. Использование Java 8 Stream API:
HashMap map = new HashMap();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
int valueToFind = 2;
List keys = map.entrySet().stream()
.filter(entry -> entry.getValue() == valueToFind)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println(keys);
4. Использование библиотеки Apache Commons Collections:
HashMap map = new HashMap();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
int valueToFind = 2;