您的位置:首页 > 其它

集合类的ArrayList的应用实例

2017-10-25 22:16 316 查看
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) {
9eb5

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("对不起,没有该食品");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: