菜单界面退出后再进入之前添加的数据都没了

为什么进入商品管理菜单添加商品后再退出该菜单再进入查询时是无信息
import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {


        ArrayList array=new ArrayList();

        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店////////////////////////////////");
            System.out.println("0 退出");
            System.out.println("1 用户注册");
            System.out.println("2 用户登录");
            System.out.println("3 进入管理员模式");





            Scanner scanner=new Scanner(System.in);
            String a=scanner.nextLine();
            Yonghu y=new Yonghu();
            switch (a){
                case"0":
                    System.out.println("感谢使用");
                    System.exit(0);
                    break;
                case"1":
                    System.out.println("1 用户注册");
                    yonghuzhuce(array);
                    break;
                case"2":
                    System.out.println("2 用户登录");
                    yonghudenglu(array);
                    break;

                case"3":
                    System.out.println("3 管理员模式登录");
                    guanliyuandenglu(array);
                    break;

                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }



    }

    private static void guanliyuandenglu(ArrayList array)//管理员登录
    {
        Scanner sc=new Scanner(System.in);
        String zh1;
        String mm1;
        while(true) {
            System.out.println("请输入管理员账号");
            zh1=sc.nextLine();
            System.out.println("请输入管理员密码");
            mm1=sc.nextLine();
            if (zh1.equals("asd")&&mm1.equals("123")){
                System.out.println("账号密码正确");
                guanliyuan(array);
                break;
            }else {
                System.out.println("账号或密码错误,请重新登录,或注册后再进行登录");
                break;
            }
        }
    }





    //用户注册
    public static  void  yonghuzhuce(ArrayList array){
        //从键盘录入用户注册的账号名账号密码
        Scanner sc=new Scanner(System.in);
        // 为了在while外访问Name
        String Name;
        String zhanghao;
        String mima;
        String dizhi;
        while(true){
            System.out.println("请输入账号名");
            Name= sc.nextLine();
            System.out.println("请注册账号");
            zhanghao= sc.nextLine();
            boolean flag=Name(array,Name);
            System.out.println("请注册密码");
            mima= sc.nextLine();
            System.out.println("请输入收货地址");
            dizhi= sc.nextLine();
            boolean flag3=Name1(array,zhanghao);
            //创建对象,将键盘录入的数据赋值给对象中的成员变量
            if(flag3==true&&flag==true){
                System.out.println("您输入的账号名已使用,请重新输入:");
                break;
            }
            Yonghu yh=new Yonghu();
            yh.setName(Name);
            yh.setZhanghao(zhanghao);
            yh.setMima(mima);
            yh.setDizhi(dizhi);
            //将对象添加到集合中,并提示成功
            array.add(yh);

            System.out.println("注册成功");
                break;

        }

    }

    private static boolean Name1(ArrayList array, String zhanghao)//看是否存在
    {
        boolean flag3=false;
        for(int i=0;i<array.size();i++)
        {
            Yonghu yh=array.get(i);

            if(yh.getZhanghao().equals((zhanghao))){
                flag3=true;
                break;
            }
        }


        return flag3;
    }

    private static boolean Name(ArrayList array, String name)//看是否存在
    {
        boolean flag=false;
        for(int i=0;i<array.size();i++)
        {
            Yonghu yh=array.get(i);

            if(yh.getName().equals((name))){
                flag=true;
                break;
            }
        }


        return flag;}

    //用户登录
    public static  void  yonghudenglu(ArrayListarray){

        Scanner sc=new Scanner(System.in);
        String zh;
        String mm;

        while(true) {
            System.out.println("请输入账号");
            zh=sc.nextLine();
            System.out.println("请输入账号密码");
            mm=sc.nextLine();
            boolean flag1=f1(array,zh);
            boolean flag2=f2(array,mm);
            if (flag2==flag1&&flag1==true&&flag2==true){
                System.out.println("账号密码正确");
                shangdiancaidan();

            }else {

                System.out.println("账号或密码错误,请重新登录,或注册后再进行登录");
                break;
            }

        }
    }
    //商店菜单                         ArrayList array1=new ArrayList();
    private static void shangdiancaidan() {
        //用户的集合
        ArrayList array=new ArrayList();
        ArrayList array1=new ArrayList();
        System.out.println("0 退出账号");
        System.out.println("1 查看用户个人信息");
        System.out.println("2 商店商品选购");
        Scanner scanner=new Scanner(System.in);
        String a=scanner.nextLine();
        switch (a){
            case"0":
                System.out.println("感谢使用");

                break;

            case"1":
                System.out.println("1 查看用户个人信息");
                gerenyonghuxinxichakan(array);
                break;
            case"2":
                System.out.println("2 商品选购");
                shangpinxuangou(array1);
                break;
            default:
                System.out.println("输入命令有误,请重新输入!");
        }

    }

    private static void shangpinxuangou(ArrayList array1) {
    }

    private static void gerenyonghuxinxichakan(ArrayList array) {
        if (array.size()==0){
            System.out.println("无信息,请先添加信息后再查询");
            return;//为了往下执行,而不是卡在这
        }
        System.out.println("用户名\t\t账号\t\t密码\t\t");
        //从集合中取出数据按照对应格式显示学生信息
        for(int i=0;i< array.size();i++){
            Yonghu yh=array.get(i);
            System.out.println(yh.getName()+"\t\t"+yh.getZhanghao()+"\t\t"+yh.getMima());

        }

    }

    private static boolean f2(ArrayList array, String mm)//判断密码是否正确
    {
        boolean flag1=false;
        for(int i=0;i<array.size();i++)
        {
            Yonghu yh=array.get(i);

            if(yh.getMima().equals((mm))){
                flag1=true;
                break;
            }
        }

        return flag1;}

    private static boolean f1(ArrayList array, String zh) //判断账号是否正确存在
    {
        boolean flag2=false;
        for(int i=0;i<array.size();i++)
        {
            Yonghu yh=array.get(i);

            if(yh.getZhanghao().equals((zh))){
                flag2=true;
                break;
            }
        }
        return flag2;}


    //管理员界面
    public static  void  guanliyuan(ArrayListarray){

        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店管理员系统////////////////////////////////");
            System.out.println("0 切换正常登录");
            System.out.println("1 商店商品管理");
            System.out.println("2 用户信息管理");
            System.out.println("3 订单信息管理");
            Scanner scanner=new Scanner(System.in);
            String b=scanner.nextLine();
            dingdan s=new dingdan();
            switch (b){
                case"0":
                    System.out.println("感谢使用");
                    yonghudenglu(array);
                    break;
                case"1":
                    System.out.println("商品管理菜单");
                    shangpingaunli(array);
                    break;
                case"2":
                    System.out.println("用户信息管理菜单");
                    yonghuxinxiguanli(array);
                case"3":
                    System.out.println("订单信息管理菜单");
                    dingdanxinxi(array);
                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }

    }

    /*private static void tiaoban() {
        ArrayList array=new ArrayList();
        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店////////////////////////////////");
            System.out.println("0 退出");
            System.out.println("1 用户注册");
            System.out.println("2 用户登录");
            System.out.println("3 进入管理员模式");
            /*System.out.println("3 查看用户个人信息");
            System.out.println("4 进入管理员模式");
            System.out.println("5 商店商品选购");


            Scanner scanner=new Scanner(System.in);
            String a=scanner.nextLine();
            yonghu y=new yonghu();
            switch (a){
                case"0":
                    System.out.println("感谢使用");
                    System.exit(0);
                    break;
                case"1":
                    System.out.println("1 用户注册");
                    yonghuzhuce(array);
                    break;
                case"2":
                    System.out.println("2 用户登录");
                    yonghudenglu(array);
                    break;
                case"3":
                    System.out.println("3 管理员模式登录");
                    guanliyuandenglu(array);
                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }
    }*/

    private static void dingdanxinxi(ArrayList array) {
    }


    //商品信息管理
    private static void shangpingaunli(ArrayListarray) {
        ArrayList array1=new ArrayList();


        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店管理系统////////////////////////////////");
            System.out.println("0 退出");
            System.out.println("1 商品添加");
            System.out.println("2 商品修改");
            System.out.println("3 商品删除");
            System.out.println("4 商品查看");

            Scanner scanner=new Scanner(System.in);
            String b=scanner.nextLine();
            switch (b){
                case"0":
                    System.out.println("感谢使用");
                    guanliyuan(array);
                    break;
                case"1":
                    System.out.println("商品添加");
                    shangpintainjia(array1);
                    break;
                case"2":
                    System.out.println("商品修改");
                    sahngpinxiugai(array1);
                    break;
                case"3":
                    System.out.println("商品删除");
                    sahngpinshanchu(array1);
                    break;
                case"4":
                    System.out.println("商品查看");
                    shangpinchakan(array1);
                    break;

                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }
    }

    private static void shangpinchakan(ArrayList array) //商品查看
    {

        System.out.println("商品名\t\t价格\t\t厂商\t\t");

        if (array.size()==0){
            System.out.println("无信息,请先添加信息后再查询");
            return;//为了往下执行,而不是卡在这
        }
        //从集合中取出数据按照对应格式显示学生信息
        for(int i=0;i< array.size();i++){
            Shangpin sp=array.get(i);
            System.out.println(sp.getName()+"\t\t"+sp.getJiage()+"\t\t"+sp.getChangshang());

        }
    }

    private static void sahngpinxiugai(ArrayList array) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的商品信息");
        String name=sc.nextLine();
        //修改前,先判断是否存在
        int index=-1;
        //遍历集合修改对应用户的信息
        for(int i=0;i<array.size();i++){
            Shangpin yh=array.get(i);
            if(yh.getName().equals(name)){
                index=i;
                break;
            }
        }
        if (index==-1){
            System.out.println("该商品信息不存在,请重新输入!");
        }else{
            for(int j=0;j< array.size();j++){
                Shangpin yh=array.get(j);
                if(yh.getName().equals(name)){
                    System.out.println("请输入新名字:");
                    String Name=sc.nextLine();
                    System.out.println("请输入新价格:");
                    String jiage=sc.nextLine();
                    System.out.println("请输入厂商:");
                    String changshang=sc.nextLine();
                    //创建对象
                    Shangpin yh1=new Shangpin();
                    yh1.setName(name);
                    yh1.setJiage(jiage);
                    yh1.setChangshang(changshang);
                    array.set(j,yh1);
                    //提示修改成功信息
                    System.out.println("修改信息成功!");
                    break;
                }

            }
        }
    }

    private static void shangpintainjia(ArrayList array1)
    {
        Scanner sc=new Scanner(System.in);
        // 为了在while外访问Name
        String name;//商品名
        String jiage;//价格
        String changshang;//厂商
        int  i=0;

        while(true){
            System.out.println("请输入商品名");
            name= sc.nextLine();

            System.out.println("请输入价格");
            jiage= sc.nextLine();
            System.out.println("请输入厂商");
            changshang= sc.nextLine();
            //创建对象,将键盘录入的数据赋值给对象中的成员变量
            Shangpin sp=new Shangpin();
            sp.setName(name);
            sp.setChangshang(changshang);
            sp.setJiage(jiage);
            //将对象添加到集合中,并提示成功
            array1.add(sp);

            System.out.println("商品添加成功");

            break;
        }
    }



    //这是删除的方法
    private static void sahngpinshanchu(ArrayList array1) {
        //从键盘录入删除商品名
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的商品名:");
        String sp=sc.nextLine();
        //删除修改前判断商品是否存在
        //遍历集合,找到对应的对象将其删除
        int index=-1;
        for(int i=0;i();i++){
            Shangpin sp1=array1.get(i);
            if(sp1.getName().equals(sp)){
                index=i;
                break;
            }
        }

        if (index == -1){

            System.out.println("该商品不存在,请重新输入!");
        }else {
            array1.remove(index);
            System.out.println("删除该商品成功!");
        }

    }
    //用户信息管理
    private static void yonghuxinxiguanli(ArrayList array) {

        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店管理系统////////////////////////////////");
            System.out.println("0 退回");
            System.out.println("1 用户全部信息查看");
            System.out.println("2 指定账户查询");
            System.out.println("3 用户信息修改");
            System.out.println("4 用户信息删除");


            Scanner scanner=new Scanner(System.in);
            String b=scanner.nextLine();
            switch (b){
                case"0":
                    System.out.println("感谢使用");
                    guanliyuan(array);
                    break;
                case"1":
                    System.out.println("用户全部信息查看");
                    yonghuxinxichakan(array);
                    break;
                case"2":
                    System.out.println("指定账户查询");
                    zhidingyonghuxinxi(array);
                    break;
                case"3":
                    System.out.println("用户信息修改");
                    yonghuxinxixiugai(array);
                    break;
                case"4":
                    System.out.println("用户信息删除");
                    yonghuxinxishanchu(array);

                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }

    }

    private static void yonghuxinxixiugai(ArrayList array) //用户信息修改
    {  //从键盘获取要修改学生的学号,显示要修改的信息
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的用户信息");
        String zhanghaos=sc.nextLine();
        //修改前,先判断是否存在
        int index=-1;
        //遍历集合修改对应用户的信息
        for(int i=0;i<array.size();i++){
            Yonghu yh=array.get(i);
            if(yh.getZhanghao().equals(zhanghaos)){
                index=i;
                break;
            }
        }
        if (index==-1){
            System.out.println("该用户信息不存在,请重新输入!");
        }else{
            for(int j=0;j< array.size();j++){
                Yonghu yh=array.get(j);
                if(yh.getZhanghao().equals(zhanghaos)){
                    System.out.println("请输入该用户新账号:");
                    String zhanghao=sc.nextLine();
                    System.out.println("请输入该用户新密码:");
                    String mima=sc.nextLine();
                    System.out.println("请输入该用户新地址:");
                    String dizhi=sc.nextLine();
                    //创建对象
                    Yonghu yh1=new Yonghu();
                    yh1.setZhanghao(zhanghao);
                    yh1.setMima(mima);
                    yh1.setDizhi(dizhi);
                    array.set(j,yh1);
                    //提示修改成功信息
                    System.out.println("修改信息成功!");
                    break;
                }

            }
        }
    }
    //用户信息查看
    private static void yonghuxinxichakan(ArrayList array) {
        if (array.size()==0){
            System.out.println("无信息,请先添加信息后再查询");
            return;//为了往下执行,而不是卡在这
        }
        System.out.println("用户名\t\t账号\t\t密码\t\t");
        //从集合中取出数据按照对应格式显示学生信息
        for(int i=0;i< array.size();i++){
            Yonghu yh=array.get(i);
            System.out.println(yh.getName()+"\t\t"+yh.getZhanghao()+"\t\t"+yh.getMima());

        }

    }

    //定义一个方法,用于指定查询信息
    private static void zhidingyonghuxinxi(ArrayList array){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入用户账号");
        String zhanghao=sc.nextLine();
        //查询前判断账号是否存在
        int index=-1;
        Yonghu yh=null;
        //遍历集合将对象从集合中取出
        for(int i=0;i< array.size();i++){
            yh=array.get(i);
            if (yh.getZhanghao().equals(zhanghao)){
                index=1;
                break;
            }
        }
        if (index==-1){
            System.out.println("该账号不存在,请重新输入");
        }else {
            System.out.println("姓名\t\t账号\t\t密码\t\t");
            System.out.println(yh.getName()+"\t\t"+yh.getZhanghao()+"\t\t"+yh.getMima());
        }
    }

    private static void yonghuxinxishanchu(ArrayList array) //用户信息删除
    {


        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的用户:");
        String sb=sc.nextLine();
        //删除修改前判断用户是否存在
        //遍历集合,找到对应的对象将其删除
        int index=-1;

        for(int i=0;i< array.size();i++){
            Yonghu sc1=array.get(i);

            if(sc1.getZhanghao().equals(sb)){
                index=i;
                break;

            }
        }

        if (index == -1){

            System.out.println("该用户不存在,请重新输入!");
        }else {
            array.remove(index);
            System.out.println("删除该用户成功!");

        }
    }









   /* private static void dingdanxinxi() {
        ArrayList array=new ArrayList();
        while (true)
        {
            System.out.println("///////////////////欢迎来到网上商店管理系统////////////////////////////////");
            System.out.println("0 退出");
            System.out.println("1 查看订单清单");
            System.out.println("2 更新订单付款");
            System.out.println("3 出货状态");
            System.out.println("4 删除订单");


            Scanner scanner=new Scanner(System.in);
            String b=scanner.nextLine();
            switch (b){
                case"0":
                    System.out.println("感谢使用");
                    System.exit(0);
                    break;
                case"1":
                    System.out.println("查看订单清单");
                    chakandinganqingdan();
                case"2":
                    System.out.println("更新订单付款");
                    gengxindingdanfukuan();
                case"3":
                    System.out.println("出货状态");
                    chuhuozhuangtai();
                case"4":
                    System.out.println("删除订单");
                    shanchudingdan(array);
                default:
                    System.out.println("输入命令有误,请重新输入!");
            }

        }

    }

    private static void shanchudingdan(ArrayList array)//删除订单
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的订单:");
        String sb=sc.nextLine();
        //删除修改前判断用户是否存在
        //遍历集合,找到对应的对象将其删除
        int index=-1;
        for(int i=0;i


}
、、、、、、、、、、、、、、、、、、、、

Shangpin.java

public class Shangpin {
    private String name;//商品名
    private String jiage;//价格
    private String changshang;//厂商


    public String getName() {
        return name;
    }

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

    public String getJiage() {
        return jiage;
    }

    public void setJiage(String jiage) {
        this.jiage = jiage;
    }

    public String getChangshang() {
        return changshang;
    }

    public void setChangshang(String changshang) {
        this.changshang = changshang;
    }

    public Shangpin() {
    }

    public Shangpin(String name, String jiage, String changshang) {
        this.name = name;
        this.jiage = jiage;
        this.changshang = changshang;
    }


}

//////////////////////////
Yonghu.java
public class Shangpin {
    private String name;//商品名
    private String jiage;//价格
    private String changshang;//厂商


    public String getName() {
        return name;
    }

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

    public String getJiage() {
        return jiage;
    }

    public void setJiage(String jiage) {
        this.jiage = jiage;
    }

    public String getChangshang() {
        return changshang;
    }

    public void setChangshang(String changshang) {
        this.changshang = changshang;
    }

    public Shangpin() {
    }

    public Shangpin(String name, String jiage, String changshang) {
        this.name = name;
        this.jiage = jiage;
        this.changshang = changshang;
    }


}


你的商品是放在shangdiancaidan这个方法的array1里面,重新进入商品菜单的时候又重新new了一个,商品信息自然没了,你可以把array1,放到方法外面,作为成员变量,或者持久化到文件

一般就是集合在传递时,被应用程序改了值吧,跟踪一下大概就知道哪里修改了

你定义的array1为局部变量,即是定义在方法内的,退出方法后该变量便会清除,如想保留记录,可定义全局边量,即定义在方法外面、类根下