集合类的ArrayList的应用实例

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Hello {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception//出错抛给jvm
    {
           foodManage food =new foodManage();//启用食品管理类的无参构造方法
          //键盘输入的作为输入流输入,通过BufferedReader导入进来
           BufferedReader sr=new BufferedReader(new InputStreamReader(System.in));
           while(true)
           {
                      System.out.println("请按提示选择以下功能:");
                      System.out.println("添加食品请按‘1’");
                      System.out.println("查找食品信息请按‘2’");
                      System.out.println("修改食品价格请按‘3’");
                      System.out.println("删除食品请按‘4’");
                      System.out.println("退出请按‘0’");         
           //引用。读取一行只能赋在String
              String str =sr.readLine();
              if (str.equals("1"))  //添加食品功能
              {
                    System.out.println("请输入食品编号:");
                    String number=sr.readLine();//读取数值函数,系统默认.编号
                    System.out.println("请输入食品名称:");
                    String name=sr.readLine();
                    System.out.println("请输入食品价格:");
                    //强行转入float类型
                    float price =Float.parseFloat(sr.readLine());
                    //放入到对象
                    Food sp=new Food(number,name,price);
                    food.addFood(sp); 
                  //也可以直接利用ArrayList集合的功能添加元素,或者重写类中的方法 
               }
              else if (str.equals("2")) //查找食品信息
              {
                     System.out.println("请输入食品编号:");
                     String number =sr.readLine();
                     food.foodSesrch(number);
              }
              else if (str.equals("3")) //修改食品价格
              {
                     System.out.println("请输入食品编号:");
                     String number =sr.readLine();
                     System.out.println("请输入新的价格:");
                     float price=Float.parseFloat(sr.readLine());
                     food.alterFoodPrice(number, price);
              }
              else if (str.equals("4")) //删除食品
              {
                     System.out.println("请输入食品编号:");
                     //相当于输出
                     String number=sr.readLine();
                     food.removeFood(number);
              }
              else if (str.equals("0"))
              {
                     System.out.println("感谢你的使用,再见!");
                     System.exit(0);
              }
              else
              {
                     System.out.println("输入有误!");
              }
           }
    }
}

class Food
{
     private String number;
     private String name;
     private float price;

    public Food(String number, String name, float price) {
        this.number = number;
        this.name = name;
        this.price = price;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }
}

class foodManage  //食品管理
{
      private ArrayList aa=null;

     foodManage() {
          aa=new ArrayList(); //构造方法,new集合类的对象
     }
     public void addFood(Food food)
     {
           aa.add(food);
           System.out.println("添加新产品成功!");//功能实现
     }
     public void foodSesrch(String number)
     {
           int i;
           for (i=0;i<aa.size();i++)
           {
                  Food foodS=(Food)aa.get(i);
                  if (foodS.getNumber().equals(number))
                  {
                          System.out.println("该食品信息为:");
                          System.out.println("食品编号:"+number);
                          System.out.println("食品名称:"+foodS.getName());
                          System.out.println("食品价格:"+foodS.getPrice());
                      break; //不在继续查询,此时保存了当时退出i的值,且i<aa.size()
                  }
           }
           if (i==aa.size())  //大于等于时则没有找到食品
           {
               System.out.println("对不起,没有此产品!");   
           }
     }
     public void alterFoodPrice(String number,float price)
     {
            int i;
            for (i=0;i<aa.size();i++)
            {
                 Food sp=(Food)aa.get(i);
                 if (sp.getNumber().equals(number))
                 {
                      sp.setPrice(price);
                      System.out.println("修改食品价格成功!");
                      break;
                 }
            }
            if (i==aa.size())
            {
                     System.out.println("对不起,没有找到相应的食品,修改价格失败!");
            }
     }
     public void removeFood(String number)
     {
          int i;
          if (aa.size()==0)
          {
              System.out.println("对不起,仓库中已没有任何食品");
          }
          for (i=0;i<aa.size();i++)
          {
               Food sp=(Food)aa.get(i);//获得食品的编号
               if (sp.getNumber().equals(number))  //如果输入编号与i(检索值)一致
               {
                        aa.remove(i);//删除第i个编号数据库中的数据
                        System.out.println("删除食品成功!");
                        break;
               }
           }
          //没有遍历到或者数据库中没有这个食品
          if (( i==aa.size() )&& (aa.size()!=0) )
          {
                   System.out.println("对不起,没有该食品");
          }
     }
      
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值