HashMap و Enum ها در زبان جاوا


HashMap و Enum ها در زبان جاوا
برای خرید این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

آموزش HashMap و Enumها در زبان جاوا:


در این جلسه با ادامه مبحث لیست‌ها و آرایه‌ها در خدمتتون هستیم. درجلسه قبل آرایه‌های یک بعدی و دو بعدی را توضیح دادیم. گفتیم آرایه‌ها ساختارهایی نسبتا ایستا هستند که از ابتدا باید تعداد خانه‌های موردنیاز را مشخص کنیم و برای هر خانه‌ایی یک نوع داده مشخص را داریم. در هر خانه فقط یک مقدار ذخیره می‌شود. از بین لیست‌ها ArrayList را توضیح دادیم، َArrayList تفاوت مهمی که با آرایه‌ها دارند، این است که نیاز نیست در ابتدا کار تعداد خانه‌ها را مشخص کنیم. مسئله‌ایی که در ArrayListها مثل آرایه‌ها وجود دارد، این است که یک تعداد خانه در اختیار ما قرار می‌گیرد و در هر لحظه که نیاز باشد خانه‌ها را می‌گیریم و می‌توانیم یک مقدار در آن‌ها ذخیره کنیم. در برنامه‌های کاربردی نیاز می‌شود که کلیدها و مقادیر را کنارهم نگهداری کنیم. در آرایه‌ها کلید شناسایی هر خانه یک شماره منحصربه فرد است که از صفر شروع می‌شود و خود ما تعیین کننده مقدار کلیدها نیستیم و  فقط مقادیر را در خانه‌های آرایه قرار می‌دهیم در لیست‌ها هم به همین شکل است.


در این جلسه می‌خواهیم در مورد Map و HashMsp توضیح دهیم. Map و HashMap کمک می‌دهند که خود ما بتوانیم کلیدها را تعیین کنیم و براساس هر کلید مقادیری را ذخیره کنیم. در واقع Map یک اینترفیس است که چندین کلاس و اینترفیس دیگر از آن ارث می‌برند. HashMap این امکان را می‌دهد که لیست‌هایی بسازیم که هر گره این لیست شامل یک کلید و یک مقدار است.
برای ایجاد HashMap شما باید از اینترفیس Map یا از کلاس Map یک شی بسازید.


نحوه تعریف HashMap: در این مثال یک HashMap با نام hashList ایجاد کردیم که هر خانه آن با عدد شماره گذاری می‌شود و شامل یک مقدار رشته‌ایی است.
نکته: HashMapها از نوع لیست هستند. در واقع محدودیتی در تعداد خانه‌ها ندارند و در ابتدا هم نیازی نیست تعداد خانه‌ها را مشخص کنیم.


package  package1
import  java.util.HashMap;
public class MainClass {
      public static void main (string [] args) {
           HashMap <تعیین نوع داده کلید, تعیین نوع داده مقدار>
           HashMap <Integer , String>  hashList= new HashMap                                  <Integer , String>();  
{    
{

 

ذخیره مقادیر در HashMap: با استفاده متد put می‌توانیم مقادیر را ذخیره کنیم.
 


package  package1
import  java.util.HashMap;
public class MainClass {
      public static void main (string [] args) {

        HashMap <Integer , String>  hashList= new HashMap                                     <Integer , String>();  
           hashList.put(100 , “Mehdi”);
           hashList.put(124 , “Ali”);
           hashList.put(12 , “Reza”);
{    
{


 

بازیابی اطلاعات در HashMap: برای بازیابی اطلاعات در HashList می‌توانیم از دستور foreach استفاده کنیم. hashList.values مقادیر hashList و hashList.keySet کلیدها را بازیابی می‌کند.
 

package  package1
import  java.util.HashMap;
public class MainClass {
      public static void main (string [] args) {

           HashMap <Integer , String>  hashList= new HashMap                                  <Integer , String>();
          for(String item : hashList.values() ){
                system.out.println(item);
          }
          for(int item : hashList.keySet() ){
                system.out.println(item);
          }
{    
{


روش دوم بازیابی اطلاعات:  کلیدها را به همراه مقادیرشان چاپ می‌کند.


for (int i : hashList.keySet){
      system.out.println( i + “ : “ + hashList.get(i) );
}

 

برگرداندن مقادیر در HashMap: از متد get برای برگرداندن مقادیر استفاده می‌کنیم.  در لیست‌ها شماره‌ها دست ما نیست و از صفر شماره‌ گذاری می‌شوند اما در HashMapها شماره گذاری را خودمان انجام می‌دهیم. یعنی کلید را خودمان تعیین می‌کنیم. در مثال زیر مقدار مربوط به شماره 124 را برمی‌گرداند و چاپ می‌کند.
 

 System.out.println( hashList.get(124) );

 

مثال: در این مثال مقدار کلیدها از جنس  stringاست و مقادیر از جنس integer می‌باشند و برای حذف مقادیر از متد remove استفاده می‌کنیم.


نکته: با متد clear می‌توانیم کل HashMap را پاک کنیم. 

colorPoint.clear();
package  package1
import  java.util.HashMap;
public class MainClass {
      public static void main (string [] args) {

        HashMap < String , Integer >  colorPoint= new HashMap                                     < String , Integer >();
          colorPoint.put(“Red” , 23);
           colorPoint.put(“Green” , 82);
           colorPoint.put(“Blue” , 67);
           system.out.println(colorPoint.get(“Green”));
           colorPoint.remove(“Red”);
           for ( String color : colorPoint.keySet()) {
                system.out.println( color + “ : “ + colorPoint.get(color) );
           }   
         

{    
{

 

Enum:
Enumها یک مدل خاص از کلاس‌ها هستند. زمانی که یک کلاس تعریف می‌کنیم مثلا وقتی کلاس person را تعریف می‌کردیم یک ساختار جدید به نام person ایجاد می‌شد، Enumها هم یک نوع داده جدید هستند که اعضایشان مقادیر ثابت هستند. گاهی اوقات دو مقدار برای برنامه نویس کافی نیست مثلا نوع داده Boolean که دارای دو مقدار می‌باشد. زمانی که بخواهیم مجرد یا متاهل بودن را نشان دهیم از نوع داده بولین استفاده می‌کنیم. اما اگر نیاز داشته باشیم که چندین مقدار را برچسب گذاری کنیم. مثلا در یک برنامه می‌خواهیم از روزهای هفته استفاده کنیم پس روزهای هفته را برچسب گذاری می‌کنیم و در قالب یک  Enum که یک نوع داده شمارشی است، استفاده کنیم. مثلا به جای اینکه از عدد 2 برای روز دوشنبه استفاده کنیم از نام خود کلمه استفاده کنیم. یعنی مقادیری که اسم دار شدند.


نحوه تعریف Enum:
می‌توانیم یک سری ثابت‌ها را در Enum به صورت نامحدود تعریف کنیم. در این مثال از نام رنگ‌ها استفاده کرده‌ایم. برای دسترسی داشتن به مقدار هر کدام از ثابت‌ها کافیه از اسم Enum  و اسم آن مقدار استفاده کنیم. مانند: Color.RED; و هنگامی که یک Enum تعریف می‌کنیم، می‌توانیم اشیایی از جنس Enum داشته باشیم که با مقادیری که تعریف کرده‌ایم مقداردهی می‌شوند.

 

package  package1
enum Color{
      RED,GREEN,BLUE,YELLOW
}
public class MainClass {
      public static void main (string [] args) {
            Color  color;
            color = Color.RED;
            system.out.println(color);

{    
{


 

دوست درسمنی عزیز، امیدواریم از این آموزش رایگان لذت برده باشید.
برای یادگیری این مبحث می توانید این درس را دانلود کنید و از فایل ها و ویدئو این بخش استفاده کنید.
شما عزیزان می توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش هایمان یاری کنید.

با امید موفقیت و شادی برای شما دوست درسمنی عزیزsmiley
انجمن برنامه نویسان جاوا

 

 


نظر بدهید

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


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 26 جلسه
مدت زمان 685 دقیقه
حجم دوره 1/84 گیگابایت
سطح مهارت مقدماتی
وضعیت دوره پایان یافته
: میانگین امتیاز

رایگان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در ... ر انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.بیشتر بدانید