首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 鍵值對資料型態(Map)屬於引用型態,不可直接進行四則運算

     編輯:程式設計綜合問答

直接回答

Map<K,V> 及其實作類(HashMap, TreeMap 等)屬於引用型態。引用型態變數儲存的是物件在堆積上的位址,不支援直接進行 + - * / 運算。

可運算的型態

  • 基本型態:byte, short, int, long, float, double, char, boolean。
  • 包裝類別:Integer, Double, Long...(Java 5+ 自動拆箱/裝箱支援運算子)。

正確操作 Map 中的數值


Map map = new HashMap<>();
map.put("price", 100);
map.put("qty", 2);

// 取出值運算
int total = map.get("price") * map.get("qty");  // 自動拆箱 int * int
map.put("total", total);                        // 自動裝箱存回

// 或使用 compute (Java 8+)
map.compute("total", (k, v) -> map.get("price") * map.get("qty"));

常見誤區


// 錯誤:嘗試直接對 Map 運算
Map m1 = ..., m2 = ...;
Map sum = m1 + m2;  // 編譯錯誤:operator + not defined for Map

// 正確:逐鍵合併
m2.forEach((k, v) -> m1.merge(k, v, Integer::sum));

總結

  • Map 本身是容器,不可直接運算。
  • 從 Map 取出基本型態/包裝類別值後,可正常進行四則運算。
  • 若需元素級運算,使用 Stream、forEach、compute/merge 等 API。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved