Hirdetés

Új hozzászólás Aktív témák

  • floatr
    veterán

    Sziasztok!
    A lenti kódban ezt a sort nem értem:
    String prevvalue=(String)newmap.put(3,"is great");

    Tudnátok segíteni az értelmezésében? köszönöm

    Ez: newmap.put(3,"is great") --> Beleteszi a 3. helyre az "is great" stringet. Ez eddig világos.
    De nem értem, hogy miért kell előtte (String) castolni és azt sem értem, hogy prevvalue értéke miért nem az újonnan berakott érték, azaz "is great" string lesz?

    Kódrészlet:
    public class HashMapDemo {
    public static void main(String args[]) {
    // create hash map
    HashMap newmap = new HashMap();

    // populate hash map
    newmap.put(1, "tutorials");
    newmap.put(2, "point");
    newmap.put(3, "is best");

    System.out.println("Map value before change: "+ newmap);

    // put new values at key 3
    String prevvalue=(String)newmap.put(3,"is great");

    // check returned previous value
    System.out.println("Returned previous value: "+ prevvalue);

    System.out.println("Map value after change: "+ newmap);
    }
    }

    Futási eredmény:
    Map value before change: {1=tutorials, 2=point, 3=is best}
    Returned previous value: is best
    Map value after change: {1=tutorials, 2=point, 3=is great}

    Innen vannak a fenti sorok.

    JavaDoc [link]

    A metódus visszatérési értéke a kulccsal korábban tárolt érték, vagy ha az nem volt, akkor null. A cast meg azért van, mert nem generics-es a map definíciója. Helyesen így lenne:

    Map<Integer, String> newmap = new HashMap<Integer, String>();
    ...
    String prevvalue = newmap.put(3, "is great");

Új hozzászólás Aktív témák