2013-04-12 18 views
5

miałem problemy ze zrozumieniem wyjaśnienie wartości zwracanej put() w HashMapPowrót Wartość put() w HashMap: Java

private Map<Bookmark, Integer> mDevice = new HashMap<String, Integer>(); 

    String abc = "two" 
    Integer ret = mDevice.put(abc, ONLINE); 

mam rację mówiąc następujące:

  1. jeśli klucz abc już istnieje z wartości „offline”, ret jest równa na offline
  2. jeśli klucz abc już istnieje z wartości „online”, ret jest równa ONLINE
  3. jeśli klucz abc nie istnieje, to jest ret równa zero.

Dzięki.

+0

to jest uzasadnione pytanie, dlaczego -1? – Sunny

+0

Przeczytaj javadocs. Twoje zrozumienie jest dość niepoprawne: http://docs.oracle.com/javase/7/docs/api/ – duffymo

+0

Zobacz, dlaczego dlatego zapytałem ... więc dlaczego negatywne głosy. – Sunny

Odpowiedz

11

Sposób put ma ten sam typ zwracanej o wartości:

@Override 
    public V put(K key, V value) { 
     return putImpl(key, value); 
    } 

Sposób kojarzy określonej wartości z określonego klucza w tej mapie. Jeśli mapa poprzednio zawierała mapowanie dla klucza, stara wartość zostanie zastąpiona.
Powoduje zwrócenie poprzedniej wartości skojarzonej z kluczem lub wartości null, jeśli nie było mapowania dla klucza. Tak, twoje punkty są poprawne.
Aby uzyskać więcej informacji, odwiedź here

+1

Niezła informacja! Dzięki... – normalUser