جافا دائما الكتابة فوق hashcode عندما تساوي الكتابة فوقها
في الآونة الأخيرة ، تعلمت المعرفة الأساسية لجافا. عندما أواجه جافا تغطي متساويًا ، لدي دائمًا العديد من الأسئلة عندما يتعين عليّ كتابة رمز Hashcode. بعد مناقشة مباشرة مع زملائي والاستعلام عن المعلومات عبر الإنترنت ، سأقوم بفرزها هنا لمساعدة الجميع على فهمها وهناك تعليمات في الكود.
رمز التنفيذ المحدد:
Package cn.xf.cp.ch02.item9 ؛ import java.util.hashmap ؛ import java.util.map ؛ public class phonenumber {private final short Areacode ؛ بادئة قصيرة نهائية خاصة ؛ عدد الكتان النهائي النهائي الخاص ؛ Public Fonenumber (int areacode ، int prefix ، int linenumber) {Rangecheck (AreaCode ، 999 ، "Area Code") ؛ RangeCheck (بادئة ، 999 ، "بادئة") ؛ RangeCheck (Linenumber ، 9999 ، "Line Number") ؛ this.areAcode = (قصير) AreaCode ؛ this.prefix = (قصير) بادئة ؛ this.linenumber = (قصير) عدد الكتان ؛ } private static void rangecheck (int arg ، int max ، string name) {if (arg <0 || arg> max) ream new alficalArgumentException (name + ":" + arg) ؛ } Override Public Boolean يساوي (كائن O) {if (o == this) إرجاع true ؛ إذا (! phonenumber pn = (phonenumber) o ؛ return pn.linenumber == Linenumber && pn.prefix == prefix && pn.areaCode == AreaCode ؛ } /* Override // كما هو الحال بالنسبة لسبب استخدام 31 ، هذه هي القيمة الموصى بها. وقد أظهرت الدراسات أن هذا الرقم يعمل بشكل أفضل عند استخدامها للجمهور العام () {int result = 17 ؛ النتيجة = 31 * النتيجة + AreaCode ؛ النتيجة = 31 * النتيجة + بادئة ؛ النتيجة = 31 * النتيجة + عدد الكتان ؛ نتيجة العودة } *////إذا لم يتغير كائن بشكل متكرر ولديه علوي عالي ، فيجب عليك النظر في ذاكرة التخزين المؤقت لعلم رمز التجزئة داخل متغيرات الكائن // المعدلة مع متطايرة ، سيقرأ مؤشر الترابط القيمة الأكثر تعديلًا للمتغير في كل مرة يستخدم فيها المتغير. private prolatile int hashcode ؛ Override public int hashcode () {int result = hashcode ؛ if (result == 0) {result = 17 ؛ النتيجة = 31 * النتيجة + AreaCode ؛ النتيجة = 31 * النتيجة + بادئة ؛ النتيجة = 31 * النتيجة + عدد الكتان ؛ hashcode = النتيجة ؛ } نتيجة الإرجاع ؛ } public static void main (string [] args) {map <phonEnumber ، string> m = new hashmap <phonenumber ، string> () ؛ M.Put (New Phonenumber (707 ، 867 ، 5309) ، "Jenny") ؛ // لن يتم إرجاع جيني هنا ، فسيتم إرجاعها ، لأنها تضع الأشياء في دلاء التجزئة المختلفة. }}شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!