private String goodsname ;//定义名称
private Double goodsprice;//定义单价        Map <Object,Double> goodsmap = new HashMap<Object,Double>  (); //定义商品与价格>        //商品名称

public void setGoodsname (String goodsname){
this.goodsname=goodsname;
}

public String getGoodsname (){
return goodsname;
}

//商品价格

public void setGoodsprice (Double goodsprice){
this.goodsprice=goodsprice;
}

public Double getGoodsprice (){
return goodsprice ;
}
//新增商品

public void addGoods (){
System.out.println(">>>>>>新增商品");
System.out.println(">>>商品名称:");
setGoodsname(sc.next());//调用商品名称
System.out.println(">>>商品价格:");
setGoodsprice(sc.nextDouble());//调用商品价格

if (getGoodsprice()>0&&getGoodsname()!=null){//名称不为空,商品价格与数量大于0时,即可添加成功
System.out.println("添加成功!");

goodsmap.put(getGoodsname(), (getGoodsprice()));//添加商品名称和数量到goodsmap<map>
}else { //否则添加失败
System.out.println("添加失败!");
}


}
这是一个商品添加的方法,我想实现:同步存三个值(商品名称,价格,数量),我试过用一个Map<分别放:商品名称,商品数量>,一个List<商品价格>,但是在输出的时候总是不能同步(放入的时候是同步放入的)。简化一下:【同步输出】,存三个值:商品名称,价格(可以实现累加求和),数量(可以加减)等大神谢谢了。。

解决方案 »

  1.   


    我觉得可以将
    private String goodsname ;//定义名称
    private Double goodsprice;//定义单价
    private Integer goodNumber ;//定义数量
    等等属性封装为一个商品对象Goods,Map这样存储:
     Map <String,Goods> goodsmap = new HashMap<String,Goods>  (); //以商品名(或其他属性)为键,Goods对象为值来存储。
      

  2.   

    可以商品名称,价格封装成一个对象。另外用了个map。key保存商品的名称,通过商品名称可以得到价格。value保存商品数量。这样输出就没问题了
      

  3.   

    不能同步是因为hashMap是无序存储的