Sobes.tech
Middle

თუ მეთოდები equals და hashCode არ არის გადაწერილი, რა დაბრუნდება HasMap.get() მეთოდიდან?

sobes.tech AI

პასუხი AI-სგან

null qaytarılaçaq, ägär ezläw öçen qullanılğan açqıç, quşılğan element belän ber ük ob'ekt (şul uq referensğa iä) bulmasa.

Buning säbäbe, HashMap açqıçlarnıñ "berlektägen" bilgeläw öçen hashCode() häm equals() metodların qullanırğa, ägär bu metodlar östämä yazılmağan bulsa, Object klassınnan alına.

  1. Object.hashCode() ğädättä ob'ektneñ xotira adresına nigezlängän qıymmätne qaytarır, yäğni här törle misal öçen unikaldır.
  2. Object.equals() ğına referenslar buyınça berlektäne tikşerä (this == obj).

Şuña kürä, HashMap.get() östämä yazılmağan equals häm hashCode() belän element tabar öçen, ikençe şartlar da ütärgä tieş:

  • Hash-kodlar (Object.hashCode()) ber törle bulırğa tieş, bu çok mömkin tügel törle ob'ektlar öçen.
  • Ob'ektlar referenslar buyınça berlektä bulırğa tieş (Object.equals()), yäğni, şul uq misal bulırğa tieş.

Ägär sez ob'ektne HashMapka quşırsız häm anıñ belän berlektä, başqa ob'ekt belän, ämma başqa misal belän, ezläsägez, hashCode häm equals standart räweştä alar turında törle dip sanıylar, häm get() null qaytarır.