21

我无法理解put()in a的返回值的解释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
4

3 回答 3

32

put 方法的返回类型与值相同:

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

该方法将指定的值与此映射中的指定键相关联。如果映射先前包含键的映射,则替换旧值。

它返回与键关联的先前值,如果没有键映射,则返回 null。因此,您的观点是正确的。

欲了解更多详情,请访问这里

于 2013-04-12T11:03:09.837 回答
1
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}

于 2019-06-07T06:40:59.133 回答
0

当我们调用 HashMap put 方法时:

如果映射没有与任何值关联,则返回类型为null,否则返回之前的关联值

于 2019-08-16T06:16:14.207 回答