Java中Map接口提供了put()方法,用于将键值对添加到Map集合对象中,如果该键已经存在,则覆盖它的旧值。该方法的语法格式如下:
V put(K key, V value)
其中,K表示键的类型,V表示值的类型。该方法将一个键值对添加到Map对象中,并返回与键关联的旧值。如果该键不存在于Map对象中,则返回null。需要注意的是,如果要将值设为null,则可以调用remove()方法。
以下是一个示例程序,演示如何使用put()方法向Map对象中添加键值对:
import java.util.HashMap;
import java.util.Map;
public class Example {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
map.put("C++", 3);
System.out.println(map); // 输出 {Java=1, Python=2, C++=3}
Integer oldValue = map.put("Python", 4);
System.out.println(map); // 输出 {Java=1, Python=4, C++=3}
System.out.println(oldValue); // 输出 2
}
}
以上代码首先创建了一个空的Map对象map,然后使用put()方法向其中添加三个键值对。接着打印map对象,输出结果为{Java=1, Python=2, C++=3}。由于Map对象中的元素是无序的,因此输出结果的顺序可能会有所不同。
然后,使用put()方法覆盖了"Python"键对应的值,将其从2改为4。由于"Python"键已经存在于map对象中,因此使用put()方法会覆盖原来的值。put()方法返回的是与键关联的旧值,即覆盖前的值,所以最后打印oldValue的值为2。
需要注意的是,当put()方法将键值对添加到Map对象中时,如果指定的键已经存在于Map对象中,则调用put()方法后原来与该键关联的值会被新值替换。此时旧值会被返回,而不是新值。如果不需要返回旧值,则可以使用Map接口的子接口java.util.HashMap或java.util.concurrent.ConcurrentHashMap中的putIfAbsent()方法。