English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا البرنامج، ستتعلم كيفية ترتيب المفاهيم المقدمة في الموسوعة الافتراضية حسب القيمة في Java.
import java.util.*; public class SortMap { public static void main(String[] args) { LinkedHashMap<String, String> capitals = new LinkedHashMap<>(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); Map<String, String> result = sortMap(capitals); لـ (Map.Entry<String, String> entry : result.entrySet()) { System.out.print("مفتاح: " + entry.getKey()); System.out.println(" قيمة: " + entry.getValue()); } } public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) { List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet()); Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2.getValue())); LinkedHashMap<String, String> result = new LinkedHashMap<>(); لـ (Map.Entry<String, String> entry : capitalList) { result.put(entry.getKey(), entry.getValue()); } return result; } }
عند تشغيل هذا البرنامج، الناتج هو:
مفتاح: أستراليا قيمة: كندر مفتاح: نيبال قيمة: كاتماندو مفتاح: إنجلترا قيمة: لندن المفتاح: الهند القيمة: دلهي الجديدة المفتاح: الولايات المتحدة القيمة: واشنطن
في البرنامج أعلاه، نحن نستخدم LinkedHashMap لتخزين البلدان والمدن العاصمة الخاصة بها في المتغير capitals.
لدينا طريقة sortMap()، التي تأخذ قائمة مرتبطة وتعيد قائمة مرتبطة منظم.
في الداخلية للمتغير، نحول خريطة الهاش إلى قائمة capitalList. ثم، نستخدم طريقة sort()، التي تأخذ قائمة ومقارن.
في هذا المثال، هو lambda expression الذي يقارن بين القيم في القائمتين o1 وo2 باستخدام o1.getValue().compareTo(o2.getValue()).
بعد الحسابات، نحصل على قائمة مرتبة capitalList. ثم، نحتاج فقط إلى تحويل القائمة إلى LinkedHashMap ناتج ونعود.
في الداخلية للمتغير main()، نمر بكل عنصر في map ونطبع مفتاحه وقيمته.