Junior — Middle
Можете ли да обясните механизма за добавяне на елементи в структурата данни HashSet?
sobes.tech AI
Отговор от AI
HashSet в Java (и Android) е реализиран на базата на HashMap. Когато добавяте елемент към HashSet, се случва следното:
- Изчислява се хеш-кодът на елемента с помощта на метода
hashCode(). - Въз основа на хеш-кода се определя индексът на кошчето (bucket) в вътрешния масив.
- Ако в кошчето вече има елементи, се извършва сравнение с
equals(), за да се провери дали такъв елемент вече съществува (за да се избегнат дублирания). - Ако елементът липсва, той се добавя към кошчето.
По този начин HashSet осигурява уникалността на елементите и бърз достъп чрез хеширане.
Пример за добавяне:
HashSet<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // няма да бъде добавен, тъй като "apple" вече съществува