Announcement

Collapse
No announcement yet.

HashMap problem. Ignorieren einzelner Wertepaare.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HashMap problem. Ignorieren einzelner Wertepaare.

    Hallo Forum,

    Ich arbeite mit eclipse 3.4. Im Forum Java mit eclipse ist auch ein posting von (irrtümlich in englisch).

    in meiner Java-Anwendung tritt ein merkwürdiges Phänomen auf:

    HashMap map = new HashMap(),
    map.put("hallo","Du");
    map.put("wie","geht");
    map.put("es","Dir");
    .
    .
    .
    .
    map.put("das_sind", "7_Eintraege");

    Von diesen 7 Einträgen, sind aber nur 6 über map.get() zugänglich. Mindestens ein key-value-Paar wird immer "verschluckt".
    Hat das schon mal jemand erlebt?

  • #2
    Es wäre schon sinnvoll, dass du die konkreten Werte hier angibst.

    Die Klasse Hashmap ist schon "alt". Ein derartiges Verhalten wäre schon längst bekannt.

    Die einzige Ursache könnte nur sein, dass du doppelte Keys hast. Des Weiteren lässt sich ja die Rückgabe von put auswerten. Dieser ist null, wenn das Object nicht aufgenommen werden konnte; ansonsten die alte map.
    Christian

    Comment


    • #3
      Die Werte lauten zum Bspl.:
      TIMEWINDOW_START=1234, _NR=200, ALL_ACTIVE=true, PARAM_NAME=TestName5, REQUEST_ID=Hals, TIMEWINDOW_END=4567, IN_PROGRESS=false, TYPE=CONSOLIDATION

      Den Wert "TIMEWINDOW_START=1234" läßt die HashMap aus...

      Comment


      • #4
        TIMEWINDOW_START <-> TIMEWINDOW_END

        Vielleicht gibt das den ärger wegen dem Unterstrich. Da erkennt er dann keine unterschiedlichen Keys mehr.
        Christian

        Comment


        • #5
          tja, das fände ich zwar merkwürdig, aber irgend so etwas hab mir schon gedacht.
          Trotzdem Danke,
          LG
          floripa
          Zuletzt editiert von floripa; 25.02.2009, 13:26. Reason: EDIT

          Comment


          • #6
            Bekomme hier ganz korrekt 8 ausgegeben

            Code:
            HashMap<String, String> test = 
            
            new HashMap<String, String>();
            test.put("TIMEWINDOW_START", "1234"); test.put("_NR", "200"); test.put("ALL_ACTIVE", "true"); test.put("PARAM_NAME", "TestName5"); test.put("REQUEST_ID", "Hals"); test.put("TIMEWINDOW_END", "4567"); test.put("IN_PROGRESS", "false"); test.put("TYPE", "CONSOLIDATION"); System.out.println(test.size());


            Eclipse Ganymed 3.4.0 Java 1.5.0.11
            Christian

            Comment


            • #7
              das ist richtig, size() bekomme ich auch korrekt.
              Nur abrufen kann ich nicht alle... es fehlt TIMEWINDOW_START
              Ich versteh das auch nicht...
              Habe jetzt mit Hashtable experimentiert, was momentan zu funktionieren scheint, warum auch immer.

              Comment


              • #8
                Code:
                 
                HashMap<String, String> test = 
                
                new HashMap<String, String>(); test.put("TIMEWINDOW_START", "1234");
                test.put("_NR", "200"); test.put("ALL_ACTIVE", "true"); test.put("PARAM_NAME", "TestName5"); test.put("REQUEST_ID", "Hals"); test.put("TIMEWINDOW_END", "4567"); test.put("IN_PROGRESS", "false"); test.put("TYPE", "CONSOLIDATION"); System.out.println(test.get("TIMEWINDOW_START")); System.out.println(test.get("_NR")); System.out.println(test.get("ALL_ACTIVE")); System.out.println(test.get("PARAM_NAME")); System.out.println(test.get("REQUEST_ID")); System.out.println(test.get("TIMEWINDOW_END")); System.out.println(test.get("IN_PROGRESS")); System.out.println(test.get("TYPE"));
                ergibt

                Code:
                1234
                200 true TestName5 Hals 4567 false CONSOLIDATION
                keine Fehler. Vermute das du 2 gleiche Keys aus der DB bekommst oder dich ggf. beim Key verschreibst.

                Warum nicht

                Des Weiteren lässt sich ja die Rückgabe von put auswerten.

                ????
                Christian

                Comment


                • #9
                  Danke Christian fuer Deine Muehe. Die Rueckgabe von put werde ich beizeiten noch auswerten, derweil bin ich gluecklich dass es mit HashTable funktioniert.

                  Comment

                  Working...
                  X