黑马程序员技术交流社区
标题:
关于集合使用的综合案例
[打印本页]
作者:
jianhua0798
时间:
2016-6-12 23:04
标题:
关于集合使用的综合案例
import java.util.ArrayList;
import java.util.Scanner;
public class StoreList {
public static void main(String[] args) {
//定义一个集合,存储商品对象
ArrayList<FruitItem>fruitList = new ArrayList<>();
//启动程序,先初始化一部分商品
init(fruitList);
//列出菜单
do {
System.out.println("1.查看所有商品\t2.添加商品信息\t3.修改商品\t4.删除商品\t5.退出系统");
Scanner sc = new Scanner(System.in);
int op = sc.nextInt();
switch (op) {
case 1:// 查看所有商品
printAll(fruitList);
break;
case 2: // 添加商品
addFruit(fruitList);
break;
case 3: // 修改商品
change(fruitList);
break;
case 4: // 删除商品
removeFruit(fruitList);
break;
case 5: // 退出
System.out.println("谢谢光临!");
System.exit(0);
break;
default:
break;
}
}while(true);
}
private static void removeFruit(ArrayList<FruitItem> fruitList) {
//创建控制输入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要删除的商品编号");
//接收永华输入的信息
int id = sc.nextInt();
//遍历集合
for(int i = 0;i < fruitList.size();i++){
//获取索引
FruitItem item = fruitList.get(i);
//判断用户输入的信息与集合中的信息是否重复
if(item.id == id){
//调用ArrayList中的一个方法:remove(int index)
fruitList.remove(i);
System.out.println("商品已删除成功");
return;
}
}
System.out.println("您输入的商品编号"+id+"不存在");
}
//创建一个方法,完成添加商品的功能
private static void addFruit(ArrayList<FruitItem> fruitList) {
Scanner sc = new Scanner(System.in);
int id = 0;
summer:
while (true) {
System.out.println("请输入要添加的商品编号");
id = sc.nextInt();
for (int i = 0; i < fruitList.size(); i++) {
FruitItem item = fruitList.get(i);
if (item.id == id) {
System.out.println("您输入的编号"+id+"已存在");
continue summer;
}
}
break;
}
//向集合中添加商品信息
System.out.println("请输入要添加的商品名称");
String name = sc.next();
System.out.println("请输入要添加的商品单价");
double price = sc.nextDouble();
System.out.println("请输入要添加的商品数量");
double count = sc.nextDouble();
//将添加的对象封装到集合中
FruitItem item = new FruitItem();
item.id = id;
item.name = name;
item.price = price;
item.count =count;
item.money = price * count;
//将封装的对象存储到集合中去
fruitList.add(item);
System.out.println("商品添加成功!!");
}
//修改商品信息
private static void change(ArrayList<FruitItem> fruitList) {
Scanner sc = new Scanner(System.in);
//定义要修改的商品编号
System.out.println("请输入要修改的商品编号");
int id =sc.nextInt();
//遍历
for(int i = 0;i < fruitList.size();i++){
//获取索引
FruitItem item = fruitList.get(i);
if(item.id == id){
System.out.println("请输入要修改的商品名称");
String name = sc.next();
System.out.println("请输入要修改的商品单价");
double price = sc.nextDouble();
System.out.println("请输入要修改的商品数量");
double count = sc.nextDouble();
//将原集合中的item对象中各属性的值覆盖
item.name = name;
item.price = price;
item.count = count;
item.money =price * count;
System.out.println("商品信息修改已完成!");
return;
}
}
System.out.println("您输入的商品编号"+id+"未找到");
}
//定义一个方法,查看所有商品
private static void printAll(ArrayList<FruitItem> fruitList) {
System.out.println("====================库存商品清单==============================");
System.out.println("商品编号\t\t商品名称\t\t商品单价\t商品数量\t商品总金额");
//遍历集合
for (int i = 0; i < fruitList.size(); i++) {
//获取集合中 的每一个元素
FruitItem item = fruitList.get(i);
System.out.println(item.id + "\t\t" + item.name + "\t\t" + item.price + "\t" + item.count + "\t" + item.money);
}
System.out.println("===========================================================");
}
private static void init(ArrayList<FruitItem> fruitList) {
//定义第一个商品信息
FruitItem item1 = new FruitItem();
item1.id= 9527;
item1.name = "南方蜜桔";
item1.price = 20.0;
item1.count = 200;
item1.money = item1.count * item1.price;
//定义第二个商品信息
FruitItem item2 = new FruitItem();
item2.id = 9528;
item2. name = "金华火腿";
item2.price = 200.0;
item2.count = 1000;
item2.money = item2.price * item2.count;
//定义第三个商品信息
FruitItem item3 = new FruitItem();
item3.id = 9529;
item3.name = "金华酥饼";
item3.price = 5.0;
item3.count = 200;
item3.money = item3.price * item3.count;
//将商品添加到集合
fruitList.add(item1);
fruitList.add(item2);
fruitList.add(item3);
}
}
复制代码
作者:
jianhua0798
时间:
2016-6-12 23:05
public class FruitItem {
int id;
String name;
double price;
double count;
double money;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2