Map<K,V> 及其實作類(HashMap, TreeMap 等)屬於引用型態。引用型態變數儲存的是物件在堆積上的位址,不支援直接進行 + - * / 運算。
byte, short, int, long, float, double, char, boolean。Integer, Double, Long...(Java 5+ 自動拆箱/裝箱支援運算子)。
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));