۱۳۸۹ دی ۱۹, یکشنبه

هش ماپ Hash map

درادامه مجموعه های جاوا:

به هر حال مجموعه های جاوا خیلی بهتر از آرایه ها هستند. در اینجا ما hash map را معرفی می‌کنیم یک hash map یک رابطه یک به یک بین یک شی به شی دیگر است. اجازه دهید به روش دیگر برای کسانی که نمی‌خواهند ریاضی را حفظ کنند توضیح دهم.


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


یک hash map به طور مشابه کار می کند. شما باید یک ورودی مناسب داشته باشید تا یک خروجی درخور تحویل بگیرید. هر ورودی دقیقآ به یک خروجی مرتبط می شود. در مثال قبلی یک ترکیب نام کاربری و رمز عبور به دقیقآ یک حساب ایمیل منجر می شود.


در اینجا می تونید یک نمونه کد hash map ببینید



دوباره شما جمله import را فراموش کردید. به طور معمول می‌توانید جمله import ی را که احتیاج دارید به شکل زیر تایپ کنید.


Import java.util.NameOfObject


و به جای نام شی از نام مجموعه‌ای که استفاده می‌کنید استفاده کنید که در اینجا HashMap است. همچنین می‌توانید با گرفتن کلید های Ctrl + Shift + O به طور خود کار هر چیزی را در اکلیپس وارد یاimport کنید.


اگر به HashMap ی که ساخته این نگاه کنیم می‌بینیم اولین مقدار و همچنین دومین آن هر دو استرینگ هستند. البته شما می تونید هر نوع ترکیبی داشته باشید.


شما از یک کلید برای بدست آوردن یک مقدار استفاده می کنید. یک کلید درست برابر یک مقدار، درست مثل یک نام کاربری برابر یک رمز عبور.


وارد کردن یک کلید/مقدار جدید آسان است


map.put(“Me” , “Password”);


و به شکل زیر آن‌ها را حذف می‌کنید


map.remove(“Me”);


اگر یک آرایه از کل کلید ها در یک هاش مپ بخواهید می‌توانید از متد KeySet استفاده کنید


String [] keys = map.KeySet ().toArray(new String[map.size()]);


این نسبتآ خدعه آمیز است. متد KeySet یک مجموعه Set را برمی گرداند. سپس آن مجموعه به یک آرایه ای از استرینگ Strings با ایجاد یک new String تبدیل می‌شود که طولی برابر اندازه هش مپ دارد. سپس آن آرایه در یک آرایه دیگر که کلید keys خوانده می‌شود ذخیره می شود. دلیل آنکه من یک آرایه از رشته‌ها strings درست کردم این است که کلیدها keys همه از قبل رشته Strings هستند.


چگونه است که هش مپ ها مفید هستند؟ آن‌ها به شما این اجازه را می‌دهند که اشیاء را با در نظر گرفتن دیگر اشیاء در عوض مقادیر لیست شده ذخیره کنید، همانند آنچه شما با یک ArrayList انجام می دهید



نکته: تکرار می‌کنم شما نمی‌توانید در ArrayList ها ، HashMap ها و یا هر مجموعه ی جاوا دیگر نوع های اولیه primitive types را ذخیره کنید. مجموعه های جاوا فقط اشیاء را ذخیره می کند. این بسیار مهم است پس فراموش نکنید.


امیدوارم این نوشتار مقدمه مفیدی در استفاده از انواع توسعه یافته ی مجموعه ها در اختیار شما قرار داده باشد. آن‌ها ابزار های قدرتمندی هستند به شرط آنکه به جا استفاده شوند و می‌توانند قابلیت‌های برنامه شما را به طور چشمگیری ارتقاء دهند.مجموعه های جاوا بیش از چیزی هستند که من در اینجا لیست کردم ؛ من به شدت شما را تشویق می‌کنم که به بقیه آن‌ها نگاهی بیندازید، بیاموزید چگونه از آن‌ها استفاده کنید و سپس در برنامه‌های خودتان به کار بگیرید.

۲ نظر:

Unknown گفت...

mersiiii
kheili khob bod

Unknown گفت...
این نظر توسط نویسنده حذف شده است.