集合类的ArrayList的应用实例

来源:互联网 发布:excel数据分析功能 编辑:程序博客网 时间:2024/05/17 06:00
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("对不起,没有该食品");          }     }      }