آموزش جامع Map در جاوا (بخش اول)


آموزش جامع Map در جاوا (بخش اول)
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

آموزش جامع Map در جاوا – بخش اول

در جلسه گذشته Queue و Set ها را توضیح دادیم و گفتیم ترتیب عناصر در Set ها اهمیت ندارد و نمی‌توانیم مانند Array و ArrayList یک مقدار خاص را با استفاده از کلید یا شماره خانه واکشی کنیم.

Map یک اینترفیس و ساختار مجزا است که شبیه به Set ها هستند با این تفاوت که باید برای هر عنصر یک کلید انتخاب کرد به بتوان با استفاده از آن کلید به مقدار آنها دسترسی داشت.

سه نوع کلاس از اینترفیس map وجود دارد: HashMap – LinkedHashMap – TreeMap

هنگام نوشتن Map ها دو پارامتر جنریک دریافت می‌کند: پارامتر اول نوع داده کلید -  پارامتر دوم نوع داده مقدار.

در HashMap ترتیب درج عناصر اهمیت ندارد.

HashMap<Integer,String> hashMap=new HashMap<>();

در LinkedHashMap ترتیب درج عناصر بر اساس ورود عناصر ذخیره می‌شوند.

LinkedHashMap<Integer,String> linkedHashMap=new LinkedHashMap<>();

در TreeMap بر اساس کلید عناصر مرتب می‌شوند.

TreeMap<Integer,String> treeMap=new TreeMap<>();

متدهای کاربردی Map ها

متد put

این متد یک Key و Value دریافت می‌کند و آن را به Map اضافه می‌کند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(9,"Reza");

hashMap.put(2,"Ahmad");

hashMap.put(null,"Mohammad");

hashMap.put(11,null);

hashMap.put(12,null);

System.out.println(hashMap);

خروجی

{null=Mohammad, 1=Mehdi, 2=Ahmad, 9=Reza, 11=null, 12=null}

نکته:

Map ها می‌توانند داده های تکراری داشته باشند اما نمی‌توانند کلید تکراری داشته باشند و در صورت داشتن دو عنصر با کلید تکراری آخرین عنصر درج می‌شود.

در HashMap و LinkedHashMap می‌توان یک عنصر با کلید null وارد کرد.

متد size

این متد سایز Map را برمی‌گرداند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

hashMap.put(9,"Reza");

System.out.println(hashMap.size());

خروجی

3

متد iaEmpty

این متد خالی بودن Map را چک می‌کند.

HashMap<Integer,String> hashMap=new HashMap<>();

System.out.println(hashMap.isEmpty());

خروجی

true

متد clear

این متد Map را خالی می‌کند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

hashMap.put(9,"Reza");

hashMap.clear();

System.out.println(hashMap.isEmpty());

خروجی

{}

متد containsKey

این متد یک ورودی دریافت می‌کند و چک می‌کند درون کلیدهای Map آن مقدار وجود دارد یا خیر و خروجی boolean برمی‌گرداند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

System.out.println(hashMap.containsKey(18));

خروجی

false

متد containsValue

این متد یک ورودی دریافت می‌کند و درون مقدار های Map چک می‌کند آن ورودی وجود دارد یا خیر و خروجی boolean برمی‌گرداند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

System.out.println(hashMap.containsValue("Ahmad"));

خروجی

true

متد get

این متد کلید را دریافت می‌کند و عنصر را برمی‌گرداند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

System.out.println(hashMap.get(1));

System.out.println(hashMap.get(45));

خروجی

Mehdi

null

متد getOrDefault

این متد دو ورودی دریافت می‌کند ورودی اول کلید و ورودی دوم یک مقدار پیش فرض و اگر عنصری با آن کلید در Map وجود نداشته باشد مقدار پیش فرض را برمی‌گرداند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

System.out.println(hashMap.getOrDefault(1,"****"));

System.out.println(hashMap.getOrDefault(45,"****"));

خروجی

Mehdi

****

متد remove

این متد کلید را دریافت می‌کند و آن عنصر را از Map حذف می‌کند.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

hashMap.remove(1);

System.out.println(hashMap);

خروجی

{2=Ahmad}

متد replace

این متد مقدار یک عنصر را عوض می‌کند. ورودی اول کلید، ورودی دوم مقدار فعلی و ورودی سوم مقدار جدید است.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

hashMap.replace(2,"Ahmad","Ahmad Reza");

System.out.println(hashMap);

خروجی

{1=Mehdi, 2=Ahmad Reza}

متد putAll

این متد برای اضافه کردن یک Map به Map فعلی استفاده می‌شود.

HashMap<Integer,String> hashMap=new HashMap<>();

hashMap.put(1,"Mehdi");

hashMap.put(2,"Ahmad");

TreeMap<Integer,String> treeMap=new TreeMap<>();

treeMap.put(21,"Sara");

treeMap.put(4,"Narges");

hashMap.putAll(tempMap);

System.out.println(hashMap);

خروجی

{1=Mehdi, 4=Narges, 2=Ahmad, 21=Sara}

 

برای مقدار دهی در لحظه تعریف Map ها باید در تابع سازنده Map نوع جنریک را وارد کنید و سپس بعد از تابع سازنده از {{}} استفاده کنید و با استفاده از تابع put می‌توان داده ها را اضافه کنید.

TreeMap<Integer,String> tempMap=new TreeMap<Integer,String>(){{

          put(80,"Nastaran");

          put(35,"Fatemeh");

}};

 

باعث افتخارهست که توانستیم با یک دوره جامع و کامل دیگر در خدمت شما عزیزان باشیم. این دوره فعلا شامل 56 جلسه آموزش با 1627 دقیقه است و در حال برگزاری و اضافه شدن مطالب می‌باشد، حتی ممکن است زمانی که این متن را می‌خوانید تعداد جلسات و تایم آن بیشتر نیز شده باشد، شما می‌توانید با تهیه این دوره به همه جلسات و بخش های آن دسترسی داشته باشید.

شما درسمنی های عزیز هر گونه سوال یا ابهامی از این جلسه داشتید می‌توانید به انجمن برنامه نویسان جاوا مراجعه کنید و سوالات خود را بپرسید.

ممنون از همراهی شما

 


نظر بدهید نظر شما در تصمیم دیگران اثرگذار است. لطفا برای ما و همراهان درسمن نظر خود را بنویسید.
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات : جلسه
مدت زمان : 1709 دقیقه
حجم دوره : 5/26 گیگابایت
سطح مهارت : پیشرفته
وضعیت دوره : درحال برگزاری
تعداد دانشجویان : 843
: میانگین امتیاز
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی آنلاین درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....