我是在使用map集合实现存入某种商品实现数量的累计时发现的问题
public class 测试 {
private static Map<Integer, Integer> cartMap = new HashMap<Integer, Integer>();
public static void main(String[] args) {
//定义一个变量,用于存储购物车数据
//{商品ID:数量}
//{1:10,2:1}
//购物车功能/
//将商品ID为1001,将入购物车(数量选择10)
//cartMap.put(1001, 10);
//将商品ID为1002,将入购物车(数量选择1)
//cartMap.put(1002, 1);
saveToCart(1001, 10);
saveToCart(1001, 10);
saveToCart(1002, 1);
saveToCart(1002, 1);
saveToCart(1003, 5);
saveToCart(1003, 5);
saveToCart(1004, 100);
saveToCart(1004, 100);
saveToCart(1005, 1000);
saveToCart(1005, 1000);
System.out.println(cartMap);
}
/**
* 将数据存入购物车Map
* 判断goods_id是否存在,如存在则数量增加,如不存在则put新记录
* @param goods_id
* @param num
*/
public static void saveToCart(int goods_id,int num){
//判断某个key是否存在
//cartMap.containsKey(key)
if (cartMap.containsKey(goods_id)){
// 使用Integer时不报错
Integer integer = cartMap.get(goods_id);
// int integer = cartMap.get(goods_id); 使用int类型也不报错
cartMap.put(goods_id, num+integer);
}else {
cartMap.put(goods_id, num);
}
}
}
int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null。