Logo video2dn
  • Сохранить видео с ютуба
  • Категории
    • Музыка
    • Кино и Анимация
    • Автомобили
    • Животные
    • Спорт
    • Путешествия
    • Игры
    • Люди и Блоги
    • Юмор
    • Развлечения
    • Новости и Политика
    • Howto и Стиль
    • Diy своими руками
    • Образование
    • Наука и Технологии
    • Некоммерческие Организации
  • О сайте

Скачать или смотреть HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE

  • Antonio Pagano
  • 2020-10-19
  • 845
HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE
hashmap javahashmap java implementazionehashcode javahashcode e equals metodi javahashcode java e equals regole
  • ok logo

Скачать HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE бесплатно в качестве 4к (2к / 1080p)

У нас вы можете скачать бесплатно HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE или посмотреть видео с ютуба в максимальном доступном качестве.

Для скачивания выберите вариант из формы ниже:

  • Информация по загрузке:

Cкачать музыку HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE бесплатно в формате MP3:

Если иконки загрузки не отобразились, ПОЖАЛУЙСТА, НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если у вас возникли трудности с загрузкой, пожалуйста, свяжитесь с нами по контактам, указанным в нижней части страницы.
Спасибо за использование сервиса video2dn.com

Описание к видео HashCode e HashMap - PILLOLE DI JAVA - TUTORIAL PRATICO PER INIZIARE

👉 Corso JAVA:
https://programmingacademy.it/video-c...
👉 Ebooks sul mondo java:
http://programmingacademy.it/raccolta...


HashCode e equals: come usarli e come fare override


_______________________________________
👉 Seguici anche su
  / programmingacademyjava  
  / programmingacademyit  
   / @antoniopaganopa  

#java #javadevelopers #javaprogramming #javacode #javatutorial #javaguida #softwaredevelopment #devlife #learnprogramming
#coding #codingbootcamp #codingisfun #codinglife #fullstackdeveloper #coder #javadeveloper #softwareengineer #softwareengineers #softwareengineering #opensource #geek #appdeveloper #learntocode #appdevelopment #software #nerdsYou

______________________________________________________________
L’HashMap permette di memorizzare delle coppie (chiave, valore).


il metodo put consente di inserire un nuovo valore in corrispondenza di una chiave; se la chiave è già presente il vecchio valore viene sovrascritto col nuovo;

il metodo get reperisce il valore per la chiave passata come parametro, null se tale chiave non viene trovata all’interno della mappa;


Questa volta bisogna capire cosa avviene dietro le quinte.

L’hashmap, internamente, usa, per una questione di efficienza, un array di liste per memorizzare le coppie (chiave, valore).

L’array è anche chiamato buckets e la singola posizione bucket.

Di default, il buckets ha una dimensione di 16.


Immaginiamo, per semplicità, di voler memorizzare delle coppie di stringhe, e inseriamo

(”chiaveUno”,”Pippo”)

L’hashmap deve decidere in quale posizione i (bucket) inserirla.

Per fare ciò, chiama un metodo speciale, detto hashcode, definito all’interno della classe che rappresenta la chiave, in questo caso quindi la stringa “chiaveUno”, che ritorna un numero intero, anch’esso spesso indicato hashcode.

Questo hashcode indica la posizione in cui inserire la coppia.

Ipotizziamo che l’hashcode di “chiaveUno” sia 1450, ma i bucket disponibili sono 16. Allora l’hashcode deve essere convertito in un numeroo compreso tra 0 e 15. Per fare ciò, viene chiamato un metodo indexFor(hashcode, table.lenght).

Nel nostro esempio, ipotizziamo che indexFor restituisca 2, la coppia (”chiaveUno”, “Pippo”) è inserita nel bucket 2.


Notare che per la chiave “chiaveUno” avrà sempre l’hashcode 1450, poi trasformato in 2, a prescindere dal numero di volte che richiamiamo il metodo.

Inseriamo ora la coppia (”chiaveDue”, “Pluto”).

chiaveDue ritorna l’hashcode 2940 che, trasformato con indexFor, diventa 11. L’hashmap diventa:


Infine aggiungiamo la coppia (”chiaveTre”, “Paperino”).

L’hashcode di chiaveTre è 1780 che, trasformato con indexFor, diventa 2, ma nel bucket 2 è gia presente una coppia!!!

Questa situazione è nota come problema delle collisioni, ossia, sui grandi numeri, due chiavi diverse possono avere lo stesso hashcode.

Per capire se si tratta della stessa chiave, l’hashmap richiama il metodo equals della chiave.

Se ritorna true il nuovo valore sovrascrive il vecchio:


altrimenti la nuova coppia viene aggiunto nello stesso bucket:


Quando dobbiamo estrarre, data una chiave x, un valore dall’hashtable, le operazioni seguite sono:

Calcolare l’hashcode della chiave x
Se nel bucket sono presenti più coppie (chiave, valore), confrontare, tramite il metodo equals, la chiave x con tutte le altre, fino a trovare quella corretta, se esiste.
Notiamo che il metodo hashcode è anch’esso già presente nella classe Object, e di conseguenza in tutte le class, ma, per un corretto uso dell’hashmap è importante, per la classe che rappresenta la chiave, fare l’override dei metodi equals e hashCode, tenendo conto che:

due oggetti uguali, quindi equals ritorna true, devono avere lo stesso codice hashcode.
Se due oggetti non sono uguali, non per forza devono ritornare differenti hash
Non facendo l’override si usa l’hashcode della classe Object, che ritorna l’indirizzo di memoria dell’oggetto stesso.

Комментарии

Информация по комментариям в разработке

Похожие видео

  • О нас
  • Контакты
  • Отказ от ответственности - Disclaimer
  • Условия использования сайта - TOS
  • Политика конфиденциальности

video2dn Copyright © 2023 - 2025

Контакты для правообладателей [email protected]