لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سؤال بپرسید» مطرح کنید.
محمدرضا علاقهی زیادی به بهینه بودن برنامهها دارد. او که در زمینهی الگوریتم بسیار خفن است، میداند که استفاده از hash برای نگهداری دادهها در برخی مواقع نه تنها کمکی به افزایش پرفورمنس نمیکند، بلکه پرفورمنس برنامه را کاهش میدهد. نیما که حرف محمدرضا را قبول ندارد، از او درخواست کدی کرده است تا میزان hash collision ها را ببیند. محمدرضا نیز این کار را به شما محول کرده است.
در این سؤال، یک HashSet
یا HashMap
به شما داده میشود. شما باید تعداد یکتای hash code های مقادیر موجود در HashSet
یا کلیدهای موجود در HashMap
را محاسبه کرده و برگردانید.
پروژهی اولیه را از این لینک دانلود کنید. ساختار فایلهای پروژه بهصورت زیر است:
HashCollisionChecker
🔗این کلاس شامل دو متد زیر است که باید آنها را پیادهسازی کنید:
HashSet
🔗این متد را طوری پیادهسازی کنید که با دریافت یک HashSet
، تعداد یکتای hash code های مقادیر موجود در آن را برگرداند.
HashSet
🔗این متد را طوری پیادهسازی کنید که با دریافت یک HashMap
، تعداد یکتای hash code های کلیدهای موجود در آن را برگرداند.
با اجرای متد main
موجود در کلاس HashCollisionChecker
:
خروجی باید بهصورت زیر باشد:
hashCode
استفاده کنید.HashCollisionCheckerSampleTest
موجود هستند. با افزودن JUnit به classpath پروژه، میتوانید آنها را اجرا کنید.پس از پیادهسازی متدها، فایل HashCollisionChecker.java
را آپلود کنید.