Försöker få en förståelse för hur HashMap fungerar. Läst mig till dokumentationen och letat igenom källkoden men verkar inte hitta de bitar jag är intresserad av.
Säg att vi har skapar en HashMap med en egenskriven Klass som nyckel. Vad sker innuti hashmap, konverteras detta till en integer med någon funktion som "läser av minnesinnehållet i objectet" eller hur gör den för att kunna lagra datan och komma åt den på konstant tid?
Vi kan också ställa in loadfactor vilket antyder att den inre strukturen måste ha en datastruktur kopplad till varje inre nyckel.
Dvs min tanke var att hashmap läser av minnet, skapar ett hashvärde av detta. Till varje hashvärde har vi en annan datastruktur som innehåller alla element med det värdet. För att sedan skillja på objecten söks listan igenom efter det exakt tillståndet. På så vis så får vi utåt att varje nyckel endast pekar på ett objekt (förutsatt jag är dum nog att skicka in samma objekt flera gånger i vilket fall den raderas.
Är jag rätt ut? Hur fungerar det egentligen? Det jag helt enkelt vill få reda på hur den är uppyggd (en överblick) samt vara säker på att oavsett hur många objekt jag skickar in kommer de aldrig att kolidera även om den lir långsam pga av att den inre strukturen lagrar flera element i samma lista.
Försökt formulera mina fråger så tydligt som möjligt men kan se själv det är otydligt. Detta beror till stor del på att jag inte vet vad jag riktigt frågar efter.
Säg att vi har skapar en HashMap med en egenskriven Klass som nyckel. Vad sker innuti hashmap, konverteras detta till en integer med någon funktion som "läser av minnesinnehållet i objectet" eller hur gör den för att kunna lagra datan och komma åt den på konstant tid?
Vi kan också ställa in loadfactor vilket antyder att den inre strukturen måste ha en datastruktur kopplad till varje inre nyckel.
Dvs min tanke var att hashmap läser av minnet, skapar ett hashvärde av detta. Till varje hashvärde har vi en annan datastruktur som innehåller alla element med det värdet. För att sedan skillja på objecten söks listan igenom efter det exakt tillståndet. På så vis så får vi utåt att varje nyckel endast pekar på ett objekt (förutsatt jag är dum nog att skicka in samma objekt flera gånger i vilket fall den raderas.
Är jag rätt ut? Hur fungerar det egentligen? Det jag helt enkelt vill få reda på hur den är uppyggd (en överblick) samt vara säker på att oavsett hur många objekt jag skickar in kommer de aldrig att kolidera även om den lir långsam pga av att den inre strukturen lagrar flera element i samma lista.
Försökt formulera mina fråger så tydligt som möjligt men kan se själv det är otydligt. Detta beror till stor del på att jag inte vet vad jag riktigt frågar efter.