Junior — Middle
Чӣ гуна системаи барномасозӣ рафтор мекунад, агар ду объекти гуногун ҳамон арзиши hashCode() дошта бошанд?
sobes.tech AI
Ҷавоб аз AI
Дар Java, усули hashCode() барнома, ки барнома, ки дар таблицҳои хеш (HashMap, HashSet) истифода мешавад, баробар ба як адади бутун бармегардонад. Агар ду объектҳои гуногун ҳамон арзиши hashCode() дошта бошанд, инро кулизия (collision) меноманд.
Система дар ин ҳолат дуруст рафтор мекунад, зеро hashCode() танҳо як ишора барои ҷустуҷӯи зуд аст. Пас аз ёфтани кутии бо hashCode() лозим, объектҳо бо усули equals() муқоиса карда мешаванд. Агар equals() баргардонад false, объектҳо ҳамчун гуногун ҳисоб мешаванд, новобаста аз он ки hashCode() якхела аст.
Бинобар ин, кулизияҳои hashCode() дар кори коллексияҳо вайронкунӣ намекунанд, аммо метавонанд самаранокиро кам кунанд, зеро ба муқоисаҳои иловагӣ ниёз доранд.