4-9问题

4-9问题

Goods goods=new Goods(goodsId,goodsName,goodsPrice);

​goodsMap.put(goodsId, goods);


这个实例化是为了,在后面goodsMap.put 方法取key,vuale值做准备吧?

因为value值是商品的信息, 所以需要把 商品的信息存放到一个对象中,因此创建自定义Goods 类的一个对象去接收商品的信息,然后在调用,而Goods的有参构造方法的创建也是为了这个做准备用的,对吗?




正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿满 2021-01-18 09:58:40

同学你好, Goods goods=new Goods(goodsId,goodsName,goodsPrice); 只是创建了一个Goods对象,还可以使用无参构造方法创建对象,使用set方法给goods对象属性赋值。通常创建不同的goods对象,goodsId是不同的。

在向goodsMap中存储数据时,key值不能重复,由于goods对象的goodsId不重复,所以选择goodsId作为key值。如果goodsName也不重复,也可以使用goodsName作为key值。这样可以通过key值快速找到对应的value。

祝学习愉快~

好帮手慕阿满 2021-01-17 18:41:22

同学理解的是正确。Goods类中的有参构造方法,可以通过有参构造方法创建对象,在创建对象的同时给对象属性赋值。goodsMap的value是Goods类型的,所以创建Goods类对象存储到goodMap的value,对应的key应该是Goods类对象的goodId。

祝学习愉快~

  • 提问者 rock221 #1

    老师,如果是这样的话, 那value 中 包含了key阿?  因为对象实例的时候,, Goods goods=new Goods(goodsId,goodsName,goodsPrice);  把键值都赋值给了 goods对象;那么后期在调用goodsMap.put(goodsIdgoods);方法时, key=goodsld; value=goods, 而goods= 键值对;这样不影响吗?  不应该值只传入值吗,不传入键吗。我明白goods里面包含了 键和值。但是讲的是 put(key,value),而value里面的信息过多,不影响吗

    2021-01-17 19:01:05
  • 好帮手慕阿满 回复 提问者 rock221 #2

    同学你好,value中存储的是goods类的对象,不影响。goodsMap是以key-value形式存储数据的,这里key是不能重复的。使用goodId作为key值,是一个goodsId对应一个goods对象,可以通过goodsId查找到对应的goods对象。

    祝学习愉快~

    2021-01-17 19:13:03
  • 提问者 rock221 回复 好帮手慕阿满 #3

    也就是说必须 Goods goods=new Goods(goodsId,goodsName,goodsPrice); 这样写对吧,因为一个键不能重复 ,在调用的put方法时,key=goodsId, 而这个goodsId和value中的goodsID是一样的。 这里这样写就是为了避免重复,对吗

    2021-01-17 19:21:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师