Мазмуну:

Javaдагы эки картаны салыштыра алабызбы?
Javaдагы эки картаны салыштыра алабызбы?

Video: Javaдагы эки картаны салыштыра алабызбы?

Video: Javaдагы эки картаны салыштыра алабызбы?
Video: Java технологиялык талкуу: Spring Boot жана GraphQl интеграциясы. Кантип жөнөкөй кылуу керек? 2024, Ноябрь
Anonim

Демейки боюнча, HashMap . equals() ыкмасы салыштырылат эки хэшмап ачкыч-маани жуптары боюнча. Бул экөөнү тең билдирет hasshmap инстанцияларда так бирдей ачкыч-маани жуптары болушу керек жана экөө тең бирдей өлчөмдө болушу керек. Ачкыч-маани жуптарынын тартиби болот башкача болуу жана кылат роль ойнобойт салыштыруу.

Бул жерде сиз картадагы эки маанини кантип салыштырасыз?

Карталарды нарк-теңдик үчүн салыштыруунун туура жолу:

  1. Карталардын көлөмү бирдей экенин текшериңиз(!)
  2. Ачкычтардын топтомун бир картадан алыңыз.
  3. Сиз алган топтомдогу ар бир ачкыч үчүн ал ачкыч үчүн ар бир картадан алынган маани бирдей экендигин текшериңиз (эгерде ачкыч бир картада жок болсо, бул теңчиликтин толук бузулушу)

Ошо сыяктуу эле, мен Javaдагы эки тизмени кантип салыштырсам болот? Сенин колуңдан келет экөөнү салыштыр массив тизмелер барабар () ыкмасын колдонуу ArrayList класс, бул ыкма а кабыл алат тизме объект параметр катары аны учурдагы объект менен салыштырат, дал келген учурда ал чындыкты кайтарат, эгерде ал туура эмес болсо, жалганды кайтарат.

Бул жагынан алганда, сиз эки хэш картаны кантип салыштырасыз?

үчүн Hashmaps салыштыруу Javaда, негизинен эки методдору колдонулат, тактап айтканда hashCode() жана барабар(). Эгерде hashCode эки карта барабар болсо, биз hashCode катары equals() ыкмасына өтө алабыз эки HashMaps бирдей болушу мүмкүн, бирок алар да бирдей деп айтуу туура эмес.

C++ тилиндеги эки картаны салыштыра алабызбы?

The карта ::key_comp() - бул STL ичиндеги функция C++ бул көчүрмөсүн кайтарат салыштыруу контейнер колдонгон объект салыштыруу ачкычтар. Кайтаруу мааниси: Бул ыкма кайтарып берет салыштыруу контейнер колдонгон объект салыштыруу ачкычтар. // C++ көрсөтүү программасы карта ::key_comp().

Сунушталууда: