Laughing girl2021 2021-06-30 16:29 采纳率: 100%
浏览 44
已结题

java中集合类不能重复添加,我添加多个对象,但是从第二个开始就没添加进去,求大能解惑?

//构造方法和封装方法

package com.unit7.Emp;

public class Emp {

private String num;
private String name;
private double money;

public Emp(String num, String name, double money) {         //构造方法
    super();
    this.num = num;
    this.name = name;
    this.money = money;
}

public String getNum() {                                    //封装方法
    return num;
}

public void setNum(String num) {
    this.num = num;
}

public String getName() {
    return name;
}

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

public double getMoney() {
    return money;
}

public void setMoney(double money) {
    this.money = money;
}

}

//具体业务方法

package com.unit7.service;

import java.util.ArrayList; import java.util.Scanner;

import com.unit7.Emp.Emp;

public class Service {

private ArrayList<Emp> aa=null;       //定义集合构造参数

public Service() {                    //定义集合构造参数
    aa=new ArrayList<Emp>();
}

public void addEmp(Emp emp) {                      //增加方法    
    
    aa.add(emp);
    System.out.println("添加成功!");
    System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
    System.out.println("现在仓库内的食品信息为:"+emp.getNum()+"------"+emp.getName()+"------"+emp.getMoney()+"\n");
}

Scanner s=new Scanner(System.in);
public void findEmp(String num2) {                //通过编号查询方法
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(num2)) {
                System.out.println("该食品的信息为:");
                System.out.println("食品编号为:"+num2);
                System.out.println("食品名字为:"+emp.getName());
                System.out.println("食品价格为:"+emp.getMoney());                    
                break;
            }else {
                System.out.println("该仓库没有此产品!请重新选择!");
                break;
            }
        }
    }
    
}

public void setEmp(String num3) {                //通过编号修改食品信息
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(num3)) {
                System.out.println("该食品的信息为:");
                System.out.println("食品编号为:"+num3);
                System.out.println("食品名字为:"+emp.getName());
                System.out.println("食品价格为:"+emp.getMoney());                    
                System.out.println("请输入要修改的食品编号:");
                String num4=s.next();
                emp.setNum(num4);
                System.out.println("修改后的食品编号为:"+emp.getNum());
                System.out.println("请输入要修改的食品名字:");
                String name4=s.next();
                emp.setName(name4);
                System.out.println("修改后的食品编号为:"+emp.getName());
                System.out.println("请输入要修改的食品价格:");
                Double money4=s.nextDouble();
                emp.setMoney(money4);
                System.out.println("修改后的食品价格为:"+emp.getMoney());
                System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
                System.out.println("现在仓库内的食品信息为:"+emp.getNum()+"------"+emp.getName()+"------"+emp.getMoney()+"\n");
                break;
            }else {
                System.out.println("该仓库没有此产品!请重新选择!");
                break;
            }
        }
    }
}

public void delEmp(String delNum) {                         //删除方法
    if(aa.size()==0) {
        System.out.println("该仓库为空!请重新选择!");
    }else {
        for(int i=0;i<aa.size();i++) {
            Emp emp=(Emp)aa.get(i);
            if(emp.getNum().equals(delNum)) {
                aa.remove(i);
                System.out.println("现在仓库内的食品信息为:编号--------名字--------价格");
                System.out.println("现在仓库内的食品信息为:"+emp.getNum()+"------"+emp.getName()+"------"+emp.getMoney()+"\n");
                break;
            }else {
                System.out.println("该仓库没有此产品!请重新选择!");
                break;
            }
        }
    }
}

}

//简单的食品库存管理系统

package com.unit7.test;

import java.util.Scanner;

import com.unit7.Emp.Emp; import com.unit7.service.Service;

public class Test {

public static void main(String[] args) {
    
    Service shipin=new Service();
    System.out.println("----------欢迎来到食品库存管理系统----------");            
            
    while(1==1) {            
        System.out.println("---------------主界面--------------");
        System.out.println("-----------请按提示选择以下功能-----------");
        System.out.println("-------------添加食品请按1-------------");
        System.out.println("------------查找食品信息请按2------------");
        System.out.println("------------修改食品价格请按3------------");
        System.out.println("-------------删除食品请按4-------------");
        System.out.println("--------------退出请按0--------------");

        Scanner s=new Scanner(System.in);
        int choose=s.nextInt();            

        if(choose==1) {                                        
            System.out.println("请输入食品编号:");
            String num1=s.next();
            System.out.println("请输入食品名字:");
            String name1=s.next();
            System.out.println("请输入食品价格:");
            Double pice1=s.nextDouble();
            
            Emp emp=new Emp(num1,name1,pice1);
            shipin.addEmp(emp);
            continue;
        }else if(choose==2) {
            System.out.println("请输入查询编号:");
            String num2=s.next();
            shipin.findEmp(num2);
            continue;
        }else if(choose==3) {
            System.out.println("请输入要修改食品的编号:");
            String num3=s.next();
            shipin.setEmp(num3);
            continue;
        }else if(choose==4) {
            System.out.println("请输入要删除的食品的编号:");
            String delNum=s.next();
            shipin.delEmp(delNum);
            continue;
        }else if(choose==0) {
            
            break;
        }else {
            System.out.println("输入错误,请重新输入!");
            continue;
        }
    }
}

}

  • 写回答

4条回答 默认 最新

  • Laughing girl2021 2021-06-30 22:14
    关注

    这个我增加了3个对象到集合,我用.size()看了,都添加上去了,但是取出时,只能取出第一个,其他消失不见了??请大神解惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月20日
  • 已采纳回答 8月12日

悬赏问题

  • ¥15 w10部分软件不能联网
  • ¥15 关于安装hbase的问题(操作系统-windows)
  • ¥15 cadence617版本,如何做一个参数可调的反相器
  • ¥15 novnc连接pve虚拟机报错安全协议不支持262
  • ¥15 设备精度0.03给多少公差能达到CPK1.33
  • ¥15 qt+ffmpeg报错non-existing PPS 0 referenced
  • ¥15 FOC simulink
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配