/ / Przechowywanie większej liczby obiektów w HashMap niż zakres int [duplikat] - java, hashmap

Przechowywanie większej ilości obiektów w HashMapie niż zakres int [duplicate] - java, hashmap

Czytałem o HashMap. HashCodereturns int wartość. Co jeśli mam Huge Huge HashMap, która musi przechowywać więcej obiektów niż int int. Weź pod uwagę, że dla każdego obiektu metoda HashCode () zwróci unikalną wartość. W takim przypadku co się stanie

  1. Czy zgłoszono jakiś wyjątek? Lub
  2. Będzie się zachowywał losowo?

Odpowiedzi:

0 dla odpowiedzi № 1

Masz na myśli przechowywanie ponad 2 miliardów wpisów? Kolekcje lub mapy Java nie mogą tego zrobić, ich wielkość jest zawsze wartością całkowitą.

Istnieją duże biblioteki dla dużych map.

Czy na pewno możesz przechowywać te wiele obiektóww ogóle pamięć? Jeden obiekt zajmuje co najmniej 24 bajty (będziesz poza zakresem skompresowanego OOPS), więc będziesz używał ponad 100 gigabajtów pamięci RAM, czyli bardzo małych obiektów przechowywanych w HashMap.

PS: Nie rozumiem, co masz na myśli, gdy „hashCode zwraca unikalną wartość”. Kody skrótu nie muszą być unikalne. W przypadku mapy mieszającej o wartości ponad 2 miliardów 32-bitowy kod skrótu jest nieco słaby, ale teoretycznie możliwy.