Integer和int的区别?什么时候用Integer,什么时候使用int

我是在使用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。

Integer和int的区别?什么时候用Integer,什么时候使用int_第1张图片
Integer和int的区别?什么时候用Integer,什么时候使用int_第2张图片

你可能感兴趣的:(个人经验集总结,动态规划,算法)