آموزش Enum در جاوا به همراه HashMap در جاوا
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش 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);
{
{
دوست درسمنی عزیز، امیدواریم از این آموزش رایگان لذت برده باشید.
برای یادگیری این مبحث می توانید این درس را دانلود کنید و از فایل ها و ویدئو این بخش استفاده کنید.
شما عزیزان می توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش هایمان یاری کنید.
با امید موفقیت و شادی برای شما دوست درسمنی عزیز
انجمن برنامه نویسان جاوا
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.