首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 8 Map 新增 replace 方法深度解析

     編輯:Java 相關知識

概述

Java 8 為 Map 介面新增了兩個 replace 方法,簡化了條件替換邏輯,並支援函數式編程風格。本文詳細對比 JDK 8 前後的寫法差異。

1. replace(K key, V value)

只有當鍵已存在時才替換值,否則返回 null。

等價傳統寫法

if (map.containsKey(key)) {
    return map.put(key, value);
} else {
    return null;
}

Java 8 新寫法

final String replaced = map.replace("Alaska", "Juneau");

優勢:程式碼更簡潔,可搭配 final 變數接收舊值。

2. replace(K key, V oldValue, V newValue)

只有當鍵存在且舊值匹配時才替換,返回 boolean 表示是否成功。

等價傳統寫法

if (map.containsKey(key) && Objects.equals(map.get(key), oldValue)) {
    map.put(key, newValue);
    return true;
}
return false;

Java 8 新寫法

final boolean replaced = map.replace("Nevada", "Las Vegas", "Carson City");

實戰建議

  • 優先使用新方法減少樣板代碼
  • 注意 replace 不會插入新鍵值對,僅更新現有映射
  • 配合 computeIfPresent 可實現更複雜的條件更新邏輯
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved