HashMap за младши-S

Дан код: Какъв ще бъде резултатът от съставянето и изпълнението на програмата?

Ако класът да замени метода на хеш-код, така че тя се връща случайно число и използването на този клас от обекти като ключове в HashMap, а след това как да се държат в една колекция?

Ако замените метода на хеш-код, така че тя винаги се връща на същата стойност (върне 4) и използването на този клас от обекти като ключове в HashMap, а след това как да се държат в една колекция?

Тези въпроси са взети от интервюта за длъжността младши Java разработчик и начинаещи, често са спънка. Така че, докато свежият впечатление Бързам да споделя с вас :)

Ти просто трябва да знаете две точки в работната HashMap:
1) Индексът на клетка от таблицата хеш, който ще kozhitsya ключ-стойност двойка се определя като функция на key.hashCode (). Т.е. получена чрез манипулиране на хеш-код-ти ключ. Различни ключове могат да бъдат поставени в точно една и съща клетка на таблицата (това се нарича сблъсък), а след това на самата клетка, те ще бъдат поставени в свързан списък.
2) ключовете в HashMap сравнение използване key.equals (метод).

Ако една от клас, който ще се използва като ключ за замени метода на хеш-код, така че всеки път, когато той се връща случайно число, тогава ще можем да се комбинират в една колекция от предмети, но не може да ги измъкне от там, защото в повечето случаи, търсенето няма да се състои в това HashMap клетка, в която се съхранява на желаната стойност.

Ако метод замяна hasCode на това, че винаги се връща на същата стойност, тогава ние ще бъдем в състояние да се lodit и предмети в колекцията, но всички те ще се съхраняват в една клетка и HashMap ще се държат (от гледна точка на производителност) като свързан списък.

Ако ви харесва този въпрос, гласуват за него