لینکدهش مپ (LinkedHashMap)
«لینکدهش مپ (LinkedHashMap)» مثل دفترچه تلفن است. جفت «کلید-مقدار» را نگه می دارد. اما مهم تر این است که ترتیب افزودن را حفظ می کند. «کلید (Key)» شناسه یکتا است. «مقدار (Value)» داده وابسته به کلید است.
LinkedHashMap در جاوا چیست؟
این کلاس در بسته java.util است و رابط Map را پیاده سازی می کند. پس می توانی با کلید بخوانی و بنویسی. برخلاف HashMap، ترتیب درج حفظ می شود.
ساخت یک LinkedHashMap
import java.util.LinkedHashMap;
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
نکته: با put() اضافه کن، با get() بخوان، با remove() حذف کن.
افزودن آیتم ها با put()
import java.util.LinkedHashMap;
public class Main {
public static void main(String[] args) {
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
capitalCities.put("England", "London");
capitalCities.put("India", "New Dehli");
capitalCities.put("Austria", "Wien");
capitalCities.put("Norway", "Oslo");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
نکته: ترتیب چاپ، همان ترتیب افزودن است. کلید تکراری جایگزین می شود.
دسترسی به مقدار با get()
capitalCities.get("England");
حذف و پاک سازی
capitalCities.remove("England");
capitalCities.clear();
اندازه Map با size()
capitalCities.size();
نکته: فقط کلیدهای یکتا شمرده می شوند.
حلقه روی کلیدها و مقدارها
// Print keys
for (String key : capitalCities.keySet()) {
System.out.println(key);
}
// Print values
for (String value : capitalCities.values()) {
System.out.println(value);
}
// Print keys and values
for (String key : capitalCities.keySet()) {
System.out.println("Key: " + key + ", Value: " + capitalCities.get(key));
}
مقایسه HashMap و LinkedHashMap
هر دو کلید تکراری را نمی پذیرند. اما HashMap ترتیب را حفظ نمی کند. در LinkedHashMap ترتیب درج ثابت می ماند. پس پیمایش قابل پیش بینی است.
کلیدواژه var در جاوا 10
// Without var
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<String, String>();
// With var
var capitalCities = new LinkedHashMap<String, String>();
نکته: var کد را کوتاه تر می کند؛ شفافیت هم مهم است.
اعلان با نوع Map و شیء LinkedHashMap
import java.util.Map;
import java.util.LinkedHashMap;
Map<String, String> capitalCities = new LinkedHashMap<>();
نکته: این کار انعطاف می دهد تا پیاده سازی را راحت عوض کنی.
سه گام تمرینی سریع
- یک LinkedHashMap بساز و چند جفت اضافه کن.
- با
get()مقدار یک کلید را بگیر. - روی
keySet()حلقه بزن و ترتیب را بررسی کن.
جمع بندی سریع
- ترتیب درج همیشه حفظ می شود.
- کلید یکتا است؛ مقدار ممکن است تکراری باشد.
- put اضافه می کند؛ get می خواند؛ remove حذف می کند.
- برای ترتیب پایدار، LinkedHashMap گزینه مناسبی است.