Dies ist etwas ineffizient und hat Begrenzung für variable index
, die durch die list.size()
begrenzt ist, aber hier gehen Sie
ArrayList<HashMap> list = new ArrayList<HashMap>();
//index is where you want to place your element
if(list.size() > index){
list.get(index).put(key, value); # in your case key = a, value = 1
}else if(list.size() == index){
list.add(new HashMap<String,Integer>());
list.get(index).put(key, value); # in your case key = a, value = 1
}else {
System.out.println("Index out of bounds");
}
Jetzt können Sie Ihre Werte zugreifen:
list.get(<some index>).get(<some_key);
#i.e list.get(1).get("a");
Hinweis: Wenn Sie den obigen Code verwenden, können Sie nicht auf den zufälligen Index zugreifen, der außerhalb von list.size() - 1
liegt. index
Variable kann atmost list.size()
Der beste Weg, dies zu tun, ist Ihre eigene Klasse zu erstellen, welche Variablen für a
und b
hat. Dann erstellen Sie eine list = ArrayList<YourClass>();
. Das ist viel mehr sauber
Grund ich oben genannten Code ist ineffizient, weil ich HashMap naiv erstellen 16 Steckplätze wissen, wenn Sie es ohne feste Größe initialisieren, auch wenn Sie diese Zahl Container überschreiten nicht nur um ein Element zu erhöhen, es verdoppelt die Größe. Wenn Sie wissen, wie viele Elemente Sie benötigen, können Sie sie mit dieser Nummer initialisieren.
wie ein 2D-Array? –
Ihre Frage ist nicht klar, Sie leben immer noch in der Wolke, können Sie sich beruhigen und genau sein, was Sie wollen und Beispiel geben? –
Wenn es möglich wäre, möchte ich es mit 1D-Array. Ich möchte in der Lage Beispiel Pseudocode c = Mylist.getnode (1) .a (gibt c den Wert von a im ersten Knoten) d = mylist.getnode (1) .b – Syarx