Przychodzi mi do głowy kilka powodów, dla których HashMap
s z kluczami całkowitymi są znacznie lepsze niż SparseArray
s:
- Dokumentacja systemu Android dla a
SparseArray
mówi: „Generalnie jest wolniejsza niż tradycyjnaHashMap
”. - Jeśli napiszesz kod przy użyciu
HashMap
s zamiastSparseArray
s, twój kod będzie działał z innymi implementacjami Map i będziesz mógł używać wszystkich API Java zaprojektowanych dla Map. - Jeśli piszesz kod przy użyciu
HashMap
s zamiastSparseArray
s, kod będzie działał w projektach innych niż Android. - Map przesłonięcia
equals()
ihashCode()
podczas gdySparseArray
nie robi.
Jednak za każdym razem, gdy próbuję użyć a HashMap
z kluczami całkowitymi w projekcie Androida, IntelliJ mówi mi, że powinienem użyć SparseArray
zamiast tego. Naprawdę trudno mi to zrozumieć. Czy ktoś zna jakieś istotne powody, dla których warto używać SparseArray
s?