Возвращаемое значение put() в HashMap

У меня были проблемы с пониманием объяснения возвращаемого значения put() в HashMap:

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

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

Правильно ли я сказал следующее:

  1. если ключ abc уже существует со значением OFFLINE, ret равен OFFLINE.
  2. если ключ abc уже существует со значением ONLINE, ret равен ONLINE.
  3. если ключ abc не существует, то ret равен null.

Ответ 1

Метод put имеет тип возвращаемого значения со значением:

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

Метод связывает указанное значение с указанным ключом на этой карте. Если в карте ранее содержалось отображение для ключа, старое значение заменяется.
Он возвращает предыдущее значение, связанное с ключом, или null, если не было сопоставления для ключа. Итак, ваши баллы правильные.
Для более подробной информации посетите здесь

Ответ 2

package com.payu.Payu;

import java.util.*;

public class HashMap_Example {
    public static void main(String[] args) {

        // Creating an empty HashMap
        HashMap<Integer, String> hashmap = new HashMap<Integer, String>();

        // Mapping string values to int keys
        hashmap.put(10, "HashMap");
        hashmap.put(15, "4");
        hashmap.put(25, "You");

        // Displaying the HashMap
        System.out.println("Initial Mappings are: " + hashmap);

        // Inserting existing key along with new value
        // return type of put is type of values i.e. String and containing the old value 
        String returned_value = hashmap.put(10, "abc");

        // Verifying the returned value
        System.out.println("Returned value is: " + returned_value);

        // Inserting new key along with new value
        // return type of put is type of values i.e. String ; since it is new key ,return value will be null

        returned_value = hashmap.put(20, "abc");

        // Verifying the returned value
        System.out.println("Returned value is: " + returned_value);

        // Displayin the new map
        System.out.println("New map is: " + hashmap);
    }
}

Выход :-

Начальные сопоставления: {25=You, 10=HashMap, 15=4}
Возвращаемое значение: HashMap
Возвращаемое значение: null
Новая карта: {20=abc, 25=You, 10=abc, 15=4}

Ответ 3

работал для меня, код может быть более оптимизирован

Ответ 4

Когда мы вызываем метод HashMap put:

Если карта не связана ни с каким значением, тип возвращаемого значения нулевой, иначе возвращается предыдущее связанное значение.