replace
是 java.util.Map
的默认方法,已在 Java 8 中引入。仅当当前Map到某个值时,replace
方法才会Replace指定键的条目值。 replace
方法使用以下参数。
1. Replace指定键的值。
default V replace(K key, V value)
key 是其关联值需要更改的指定键。
value 是要放置的新值。replace
方法返回旧值,如果没有与指定键关联的值,则返回 null。
2. 仅当指定的旧值与与指定键关联的值匹配时,才将指定键的值Replace为新值。
default boolean replace(K key, V oldValue, V newValue)
key 是其关联值需要更改的指定键。
oldValue 是与指定键关联的旧值。
newValue 是要放置的新值。replace
方法返回真/假值是否Replace成功。如果指定的键没有关联值,则没有Replace,因此将返回 false。如果指定键的现有旧值与指定的旧值不匹配,则没有Replace,因此返回 false。
在此示例中,我们使用的是 HashMap
。
Replace1.java
import java.util.HashMap;
import java.util.Map;
public class Replace1 {
public static void main(String[] args) {
Map<Integer, String> studentMap = new HashMap<>();
studentMap.put(101, "Mahesh");
studentMap.put(102, "Suresh");
studentMap.put(103, "Krishna");
String oldValue = studentMap.replace(101, "Mr. Mahesh");
System.out.println(oldValue); //Mahesh
System.out.println(studentMap.get(101)); //Mr. Mahesh
boolean isReplaced = studentMap.replace(102, "Suresh", "Mr. Suresh");
System.out.println(isReplaced); //true
System.out.println(studentMap.get(102)); //Mr. Suresh
isReplaced = studentMap.replace(103, "Krishna11", "Mr. Krishna");
System.out.println(isReplaced); //false
System.out.println(studentMap.get(103)); //Krishna
}
}
输出
Mahesh
Mr. Mahesh
true
Mr. Suresh
false
Krishna
不使用 replace
方法也可以实现相同的目的。
Replace11.java
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
public class Replace11 {
public static void main(String[] args) {
Map<Integer, String> studentMap = new HashMap<>();
studentMap.put(101, "Mahesh");
studentMap.put(102, "Suresh");
studentMap.put(103, "Krishna");
int key1 = 101;
if (studentMap.containsKey(key1)) {
studentMap.put(key1, "Mr. Mahesh");
}
System.out.println(studentMap.get(key1));
int key2 = 102;
if (studentMap.containsKey(key2) && Objects.equals(studentMap.get(key2), "Suresh")) {
studentMap.put(102, "Mr. Suresh");
}
System.out.println(studentMap.get(key2));
}
}
输出
Mr. Mahesh
Mr. Suresh
在此示例中,我们使用的是 LinkedHashMap
。
Replace2.java
import java.util.LinkedHashMap;
import java.util.Map;
public class Replace2 {
public static void main(String[] args) {
Map<Integer, Integer> numberMap = new LinkedHashMap<>();
numberMap.put(1, 100);
numberMap.put(2, 200);
numberMap.put(3, 300);
numberMap.replace(1, numberMap.get(1) + 50);
System.out.println(numberMap.get(1)); //150
numberMap.replace(2, 200, 250);
System.out.println(numberMap.get(2)); //250
numberMap.replace(3, 301, 350);
System.out.println(numberMap.get(3)); //300
}
}
输出
150
250
300
在此示例中,我们使用的是 TreeMap
。
Replace3.java
import java.util.Map;
import java.util.TreeMap;
public class Replace3 {
public static void main(String[] args) {
Map<String, String> treeMap = new TreeMap<>();
treeMap.put("Bharat", "Modi");
treeMap.put("Russia", "Putin");
treeMap.put("USA", "Trump");
String key1 = "Bharat";
treeMap.replace(key1, "Mr. Modi");
System.out.println(treeMap.get(key1)); //Mr. Modi
String key2 = "Russia";
treeMap.replace(key2, "Putin", "Mr. Putin");
System.out.println(treeMap.get(key2)); //Mr. Putin
String key3 = "USA";
treeMap.replace(key3, "", "Mr. Trump");
System.out.println(treeMap.get(key3)); //Trump
}
}
输出
Mr. Modi
Mr. Putin
Trump
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.concretepage.com/java/java-8/java-map-replace
内容来源于网络,如有侵权,请联系作者删除!