商品信息管理
--使用HashMao对商品信息进行管理
key为商品编号,value为商品对象
--对HashMap中的商品信息进行增删改查
商品信息类:
属性:商品编号id,商品名称name ,商品价格 price
方法:构造方法,获取设置属性的方法,其他方法
程序在处理key值相同的情况,是做修改,覆盖
代码如下:
Goods类:
package com.imooc.set;
public class Goods {
private String id;
private String naem;
private double price;
//构造方法
public Goods(String id, String naem, double price) {
this.id = id;
this.naem = naem;
this.price = price;
}
//get set 方法
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNaem() {
return naem;
}
public void setNaem(String naem) {
this.naem = naem;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "商品ID: " + id +
" 商品名称: " + naem +
" 商品价格: " + price;
}
}
主类:
package com.imooc.set;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class GoodsTest {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
//定义HashMap对象
Map <String, Goods> goodsMap = new HashMap <String, Goods>();
//接收键盘输入
System.out.println("请输入三条商品信息:");
int i = 0;
while (i < 3) {
System.out.println("请输入第" + (i + 1) + "条商品信息 ");
System.out.println("请输入商品编号:");
String goodsId = console.next();
//判断商品编号是否存在
// 注意:主键放在第一个输入可以直接用continue后整个对象重新输入,界面友好度高
if (goodsMap.containsKey(goodsId)) {
System.out.println("该商品编号已经存在!请重新输入!");
continue;
}
System.out.println("请输入商品名称:");
String goodsName = console.next();
System.out.println("请输入商品价格:");
//第一种判断价格数值类型,重新输入第二个商品所有信息
// double goodsPrice=0;
// try {
// goodsPrice = console.nextDouble();
// }catch (java.util.InputMismatchException e){
// System.out.println("商品价格的格式不正确,请重新输入数值型数据!");
// console.next();
// continue;
// }
//第二种判断价格数值类型,重新输入价格
double goodsPrice = 0;
boolean flag = false;
do {
try {
goodsPrice = console.nextDouble();
flag = true;
} catch (java.util.InputMismatchException e) {
System.out.println("商品价格的格式不正确,请重新输入数值型数据!");
flag = false;
//这里为什么要增加一个?因为nextDouble()报错了,但是把值存入了下一个next方法中
//导致下一个next()方法被调用了
//将异常的放入新的next()中。
console.next();
}
} while (flag == false);
Goods goods = new Goods(goodsId, goodsName, goodsPrice);
goodsMap.put(goodsId, goods);
i++;
}
//遍历Map,输出商品信息
System.out.println("===========================");
System.out.println("商品的全部信息为:");
Iterator <Goods> itGoods = goodsMap.values().iterator();
while (itGoods.hasNext()) {
System.out.println(itGoods.next());
}
}
}
感谢慕课网!