Hashmap erstellen

  • Hallo,
    ich bräuchte nochmal Hilfe.
    Ich möchte einen String, bestehend aus Substrings aufteilen und in eine Hashmap speichern.

    Code
    String string = "1 , A : 2 , B : 3 , C";


    So ist der String aufgebaut.
    Diesen String teile ich in 3 Substrings:
    "1 , A"
    "2 , B"
    "3 , C"
    Diese Substrings möchte ich in eine Hashmap speichen wobei die Zahl der Key sein soll und der Buchstabe der Wert.
    Der String ist jetzt zum testen fest vorgegeben. In der richtigen App ist die Anzahl der Substrings jedoch unbekannt.


    Meine Frage:
    Wie kann ich eine Hashmap so erstellen, dass sich die Größe nach der Substringanzahl richtet?
    Wie kann ich sie auslesen das das Ergebnis ungefähr so dargestellt wird?


    Buchstabe: A
    Buchstabe: B
    Buchstabe: C


    Ich habe das versucht so zu realisiern aber funktioniert nicht wie ich es mir denke.



    Gruß
    Brausebernd

  • Hi Brausebernd,


    Warum machst du das hier:

    Java
    String check=string.replaceAll("[^:]", ""); //Bestimmung Substringanzahl
    int substringanz = check.length()+1;


    bzw. was soll da raus kommen?


    So wird schon eher ein Schuh draus:


    Ausgabe:

    Code
    Buchstabe: A
    Buchstabe: B
    Buchstabe: C


    Mfg Titus

  • Hallo,
    danke für die Antwort.
    Funktioniert soweit nur eine Frage habe ich noch.
    Ich möchte die Hashmap aktualisieren/erweitern.
    Dazu habe ich einen weiteren String

    Code
    String string1 = "1 , Z : 4 , D"


    Wie mache ich das damit die Ausgabe so aussieht.
    Buchstabe: Z
    Buchstabe: B
    Buchstabe: C
    Buchstabe: D


    Gruß Brausebernd

  • Hallo,
    funktioniert soweit alles ganz gut, nur noch eine Frage.
    Wie kann ich eine bestehende Hasmap in einen TextView komplett ausgeben?
    Kurzes Beispiel:


    Wie muss ich Zeile 32 gestalten?


    Das Problem liegt darin, dass ich nicht weiß wieviele Einträge in der Hashmap vorhanden sind.
    Der Code diehnt nur zum Beispiel.


    Ausgabe auf meinem Androidgerät hab ich mir so vorgestellt.
    1 : A
    2 : B
    3 : C
    4 : D
    Bräuchte dringend eine Lösung und krieg es leider nicht hin. :(


    Gruß
    Brausebernd

  • Hallo,
    ich bins nochmal.
    Hab das Thema mal ne weile ruhen lassen und andere Sachen realisiert.
    Nun fehlt mir noch zur Fertigstellung meiner App die Auswertung meiner Hashmap.
    Womit ich wieder beim Thema wäre.
    Ich versuch das mal zu beschreiben.
    Ich habe empfange Serverdaten mittels einer TCP-Verbindung.
    Diese Serverdaten werden bearbeitet, dass ich am Ende Key Value Paare habe.
    Diese Paare "packe" ich in eine Hashmap.
    Nun möchte ich die Hashmap nacheinander auslesen und die einzelnen Paare anzeigen lassen.
    Dazu erzeuge ich dynamisch eine entsprechende Anzahl von TextViews.


    Ich beschreibe das mal kurz an einem Beispiel.
    Ich habe eine Hasmap mit den Wert-Paaren


    1 : Das ist ein
    2 : Test


    Jetzt möchte ich die Hashmap auslesen und gleichzeitig die Anzahl der Einträge bestimmen.
    da die Anzahl 2 ist, möchte ich mittels einer for schleife (i=0, i<Hashmapeinträge, i++) dynamisch Textviews erzeugen und an bestimmte Positionen setzen.
    Die Oberfläche soll nun aus zwei Textfelden bestehen welche folgenden Text beinhalten.


    TextView1: Das ist ein
    TextView2: Test


    Anschließend empfange ich weitere Daten vom Server welche ich wieder in Form eines Key-Value Paares bringe z.B.:
    2 : Text
    Nun wird der Wert in der Hashmap überschrieben.
    Ich möchte jetzt aber nicht die kommplette Hashmap noch einmal auslesen und zur anzeige bringen, sondern nur das TexView2 aktualisieren.
    (Quasi eine Abfrage ob Key 2 bereits vorhanden wenn ja TextView2 "Test" durch "Text" ersetzen)


    Falls der Key noch nicht existiert wird er ebenfalls mit seinem entsprechenden Wert der Hashmap hinzugefügt.
    Beispiel:
    Daten vom Server:
    3 : Fertig
    Jetzt soll ein weiteres Textfeld (TextView3) erzeugt werden und zur anzeige gebracht werden.


    Ausgabe:
    TextView1: Das ist ein
    TextView2: Text
    TextView3: Fertig


    Die Werte-Paare in die Hashmap zu schreiben ist kein Problem:
    Die Hasmap sieht zum Schluss quasi so aus
    1 : Das ist ein
    2 : Text
    3 : Fertig


    Meine Fragen:
    Wie kann ich die Hashmap nacheinander auslesen und die Anzahl bestimmen um mit einer for_Schleife die entsprechende Anzahl von Views erzeugen(Brauche nur das Auslesen, Views innerhalb einer for-Schleife dynamisch erzeugen funktioniert)?


    Wie kann ich einen Vergleich anstellen ob der Key bereitsvorhanden ist und wie kann ich das entsprechende TextView aktualisieren?


    Ich habe gefühlt das "komplette" Internet durchforstet und nicht wirklich was brauchbares gefunden.


    Vielleicht hat ja jemand schonmal sowas ähnliches realisiert und könnte mir weiterhelfen.


    Gruß
    Brausebernd

  • Hi,


    so spontan würd ich sagen deine aktuelle HashMap musst du dir irgendwo auslagern (MemberVariable o.ä.) .
    Das ganze durch rennen und vergleichen um Duplikate zu vermeiden dürfte wohl aus folgendem Code zu entnehmen sein:


    Um nun die Werte aus deinen TextViews zu aktualisieren würd ich mir evtl. eine zweite HashMap basteln die zu deinem Key einfach das TextView Objekt hält.


    Gruß,
    matze

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!