Jedes Element eines Arrays steht direkt nach dem vorherigen Element.
Das aufrufen eines einzelnen Elementes ist also lediglich eine einfache
mathematische Rechnung: Elementgröße * Index
Bei Maps muss zum finden des passenden Elements ein Hash-Wert
gebildet werden, dessen berechnung natürlich schon um ein vielfaches
mehr ist als die einfache Multiplikation oben. Dann muss noch auf
Konflikte geprüft werden um das passende Element zu finden.
Das prüfen auf Konflikte kann sehr teuer werden, wenn es davon
viele gibt. Deswegen ist es bei Maps wichtig, eine passende Größe
bei der Initialisierung an zu geben (Standard ist 512). Wenn du nun
mehrere tausend Elemente hast, wird das zugreifen auf die Elemente
ziemlich langsam beim Standardwert.
Für Preferences würden sich Maps eigenen, die Maps beinhalten.
Jedes Mapelemente ist eine Gruppe und die untergeordnete Map
enthält die Key-Value-Pairs. Das erstellen dauert zwar etwas,
aber der Zugriff danach ist wohl kaum zu überbieten mit anderen
PB Strukturen, ohne sich dabei nen Wolf zu programmieren.
MFG PMV