Java Map replace()方法示例

x33g5p2x  于2022-09-24 转载在 Java  
字(3.2k)|赞(0)|评价(0)|浏览(153)

replacejava.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。

示例-1

在此示例中,我们使用的是 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

示例-2

在此示例中,我们使用的是 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

示例-3

在此示例中,我们使用的是 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

相关文章

微信公众号

最新文章

更多