Nein - Sie speichern sie als eine Liste, auf die nicht mit "Schlüssel" zugegriffen werden kann - sie hat keine Ahnung von einem Schlüssel.
Es klingt wirklich so, als wollten Sie etwas wie Map<String, String>
- vorausgesetzt, Sie müssen nur einen einzelnen Wert für jede Taste speichern.
Wenn du bei ArrayList
feststeckst (und ich würde zumindest den Parameter-Typ ändern in List
, wenn nicht Iterable
, da das alles ist, was du brauchst), dann ist das, was du hast, in Ordnung.
Wenn Sie stattdessen Map
verwenden können, funktionieren sie folgendermaßen:
Mit einem HashMap
werden die Schlüssel nicht als Liste gespeichert, daher ist dies schneller und Sie müssen keine Funktion verwenden, um den Container zu iterieren.
Sie können dann auf alle Werte mit myMap.keySet()
und myMap.values()
zugreifen, siehe Dokumentation .
Es scheint, dass Sie eine andere Datenstruktur benötigen. Zum Beispiel Map<Name, Value>
oder Map<Name, NameValuePair>
wenn Sie möchten.
Die erste Lösung ist wahrscheinlich korrekter, die zweite ist einfacher zu implementieren, wenn Sie bereits Code haben, der die Tatsache verwendet, dass Paare in der Liste gespeichert sind. Map ermöglicht das Sammeln von Werten; Collection
ist eine Superschnittstelle von List
.
Wenn Ihr Schlüssel oder Name eine Ganzzahl ist, schlage ich vor, stattdessen ein SparseArray
zu verwenden: Ссылка
Dann können Sie verschiedene Funktionen verwenden, um die gewünschten Werte mit dem Schlüssel, dem Wert oder dem Index im Array abzurufen.