2016-07-15 4 views
0

Ich habe eine bestimmte HashMap, wobei der Schlüssel die Reihenfolge des ClassModel darstellt. Wie wir alle wissen, behalten HashMaps die Reihenfolge der Schlüssel nicht bei, wenn sie abgerufen oder ausgegeben werden. Ich habe auch eine ArrayList, in der die Reihenfolge der Anordnung der ClassModels gespeichert wird. Wenn ich zum Beispiel die Schlüsselwerte von der Hashmap abrufe, würde ich etwas wie Auto 1, Auto 4, Auto 3, Auto 5 und Auto 2 bekommen. Die ArrayList-Werte haben stattdessen die beabsichtigte Reihenfolge der Anordnungswerte; Auto 1, Auto 2, Auto 3, Auto 4 und Auto 5. Ich möchte sie nach den Schlüsseln in der ArrayList bestellen. Mein Code ist unten:Wie ordnen Sie vorhandene Schlüssel in HashMap mit eigenen Schlüsseln an?

for (HashMap.Entry<String, FloorPlanModel> existingKeys : floorPlanKeys.entrySet()) { 
     Log.d(LOG_TAG, "existingKeys entries = " + existingKeys.getKey()); 
    } 
    for (String newKeys : buildingModel.getFpKeys()) { 
     Log.d(LOG_TAG, "newKeys entries = " + newKeys); 
    } 

und die Ausgänge der Moment sind:

existingKeys entries = floorplan0 
existingKeys entries = floorplan2 
existingKeys entries = floorplan3 
existingKeys entries = floorplan4 
existingKeys entries = floorplan1 

newKeys entries = floorplan0 
newKeys entries = floorplan1 
newKeys entries = floorplan2 
newKeys entries = floorplan3 
newKeys entries = floorplan4 

soll ich die zweite for-Schleife innerhalb der ersten for-Schleife setzen, aber wie über jeweils Werte haben iterieren in die HashMap und bestelle sie mit der in ArrayList? Wenn ich sie überschreibe, ändern sich die Werte in der Hashmap?

Ich habe vergessen zu erwähnen, dass ich TreeMaps dafür nicht verwenden kann. Ich müsste sie manuell anordnen.

Antwort

2

TreeMap ist dein Freund. Karte mit sortierten/sortierbaren Schlüsseln.

+0

Ok Ich habe vergessen zu erwähnen, dass ich TreeMaps im Moment nicht verwenden kann, da ich die Daten von Firebase (die nur die Daten in HashMaps speichert) abruft und direkt in einen ExpandableListAdapter einlege (wobei ich die Werte einfügen muss) in das Kind und die Gruppe, die die Position in ganzen Zahlen einnimmt). Also würde ich sie iterieren und sie stattdessen manuell neu anordnen. – user3056928

+2

'neue TreeMap (myHashMap)' wird es konvertieren. – jiggy

Verwandte Themen