About how HashMap works, in principle, everything is clear. What is the bundle, the complexity of the search and so on. All this is in Google.
The question is how, according to the hash already received, is the desired element in the array.
As I understand it, the only way to get the access time is O (1) is an array, addressing by index. So, having a hash of an object, you need to somehow bring it to this index in order to get the same O (1) according to the hash.
A simple variant comes to mind that HashMap simply reserves an array of maximum size where elements are stored under indices equal to the object’s hash itself, but this requires a lot of memory and this option seems unrealistic