对象数组增删改查超详细【附加自增和自动排序功能】

什么是对象数组

是一种特殊类型的数组,其中每个数组元素都是对象的引用

查询功能

/**
* 查询所有奶茶信息
*/

public void select(){
        for (int i = 0; i < milkteas.length; i++) {//遍历数组中的所有数据
            Milktea m=milkteas[i];//用m把数组接收
            if (milkteas[i]!=null){//如果数组不为空就输出
                System.out.println("id:"+m.id+"\t奶茶名称:"+m.MilkteaName+ "\t奶茶说明:"+m.MilkteaStrate+
                        "\t奶茶价格:"+m.MilkteaPrice+"\t销量:"+m.Sales+"\t原料:"+m.rawMaterial);
            }
        }
    }

新增功能

/**
* 增加奶茶信息
* @param addM 新增数据的参数
* @return 判断是否新增成功
*/

public boolean insert(Milktea addM){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]==null){//如果数组为空
                milkteas[i]=addM;//就把新增数据赋值给数组
                return true;
            }
        }
        return false;
    }

修改功能

/**
* 根据id修改奶茶销量
* @param id id参数
* @param Sales 销量参数
* @return 判断是否修改成功
*/

public boolean update(int id,int Sales){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]!=null){
                if (milkteas[i].id==id){//如果数组id等于传参id
                    milkteas[i].Sales=Sales;//就把销量赋值给数组销量
                    return true;
                }
            }
        }
        return false;
    }

删除功能

/**
* 根据id删除奶茶信息
* @param id id参数
* @return 判断是否删除成功
*/

public boolean delete(int id){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]!=null){
                if (milkteas[i].id==id){//如果数组id等于传参id
                    milkteas[i]=null;//就把数组赋值为空
                    return true;
                }
            }
        }
        return false;
    }

id自增功能

ps:id自增就是把新增的数据放在删除信息后的位置上,实现完整的id顺序
例如(5个数据):
1,2,3,4,5
没有自增功能删除某个数据新增后:
1,2,4,5
有自增功能删除某个数据新增后:
1,2,3,4

if (m.milkteas[i]!=null&&m.milkteas[i].id!=i+1){
                    m.milkteas[i].id=i+1;
                }

自动排序功能

ps:就是删除一个数据后,没有排序功能新增后新增的数据会新增在被删除数据的位置上,有了这个功能新增的数据就会乖乖排在最后面!

for (int i = 0; i < m.milkteas.length; i++) {
                if (m.milkteas[i]==null){
                    for (int i1 = i+1; i1 < m.milkteas.length; i1++) {
                        if (m.milkteas[i1]!=null){
                            m.milkteas[i]=m.milkteas[i1];
                            m.milkteas[i1]=null;
                            break;
                        }
                    }

                }

完整代码

public class Milktea {
    int id;
    String MilkteaName;
    String MilkteaStrate;
    int MilkteaPrice;
    int Sales;
    String rawMaterial;
    Milktea[] milkteas=new Milktea[6];
    public void show(){
        Milktea m=new Milktea();
        m.id=1;
        m.MilkteaName="草莓椰奶露";
        m.MilkteaStrate="草莓正当季,自然甜蜜蜜";
        m.MilkteaPrice=7;
        m.Sales=120;
        m.rawMaterial="草莓";
        milkteas[0]=m;

        Milktea m2=new Milktea();
        m2.id=2;
        m2.MilkteaName="芝士奶盖咖啡";
        m2.MilkteaStrate="芝士咖啡,香浓加倍";
        m2.MilkteaPrice=8;
        m2.Sales=50;
        m2.rawMaterial="咖啡";
        milkteas[1]=m2;

        Milktea m3=new Milktea();
        m3.id=3;
        m3.MilkteaName="珍珠奶茶";
        m3.MilkteaStrate="珍珠Q弹,奶茶经典";
        m3.MilkteaPrice=6;
        m3.Sales=240;
        m3.rawMaterial="珍珠";
        milkteas[2]=m3;

        Milktea m4=new Milktea();
        m4.id=4;
        m4.MilkteaName="满杯百香果";
        m4.MilkteaStrate="酸酸甜甜满杯香";
        m4.MilkteaPrice=8;
        m4.Sales=30;
        m4.rawMaterial="百香果";
        milkteas[3]=m4;

        Milktea m5=new Milktea();
        m5.id=5;
        m5.MilkteaName="芋圆葡萄";
        m5.MilkteaStrate="葡萄酸酸甜甜,芋圆QQ弹";
        m5.MilkteaPrice=8;
        m5.Sales=100;
        m5.rawMaterial="葡萄";
        milkteas[4]=m5;
    }

    /**
     * 查询所有奶茶信息
     */
    public void select(){
        for (int i = 0; i < milkteas.length; i++) {//遍历数组中的所有数据
            Milktea m=milkteas[i];//用m把数组接收
            if (milkteas[i]!=null){//如果数组不为空就输出
                System.out.println("id:"+m.id+"\t奶茶名称:"+m.MilkteaName+ "\t奶茶说明:"+m.MilkteaStrate+
                        "\t奶茶价格:"+m.MilkteaPrice+"\t销量:"+m.Sales+"\t原料:"+m.rawMaterial);
            }
        }
    }

    /**
     * 增加奶茶信息
     * @param addM 新增数据的参数
     * @return 判断是否新增成功
     */
    public boolean insert(Milktea addM){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]==null){//如果数组为空
                milkteas[i]=addM;//就把新增数据赋值给数组
                return true;
            }
        }
        return false;
    }

    /**
     * 根据id修改奶茶销量
     * @param id id参数
     * @param Sales 销量参数
     * @return 判断是否修改成功
     */
    public boolean update(int id,int Sales){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]!=null){
                if (milkteas[i].id==id){//如果数组id等于传参id
                    milkteas[i].Sales=Sales;//就把销量赋值给数组销量
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 根据id删除奶茶信息
     * @param id id参数
     * @return 判断是否删除成功
     */
    public boolean delete(int id){
        for (int i = 0; i < milkteas.length; i++) {
            if (milkteas[i]!=null){
                if (milkteas[i].id==id){//如果数组id等于传参id
                    milkteas[i]=null;//就把数组赋值为空
                    return true;
                }
            }
        }
        return false;
    }
}

测试类------------》含菜单功能

import java.util.Scanner;

public class MilkteaTest {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        String isok;
        Milktea m=new Milktea();
        m.show();
        do {
            for (int i = 0; i < m.milkteas.length; i++) {
                if (m.milkteas[i]==null){
                    for (int i1 = i+1; i1 < m.milkteas.length; i1++) {
                        if (m.milkteas[i1]!=null){
                            m.milkteas[i]=m.milkteas[i1];
                            m.milkteas[i1]=null;
                            break;
                        }
                    }

                }
                if (m.milkteas[i]!=null&&m.milkteas[i].id!=i+1){
                    m.milkteas[i].id=i+1;
                }
            }
            System.out.println("==========欢迎来到蜜雪冰城信息管理系统=========");
            System.out.println("1.查询所有奶茶信息");
            System.out.println("2.增加奶茶信息");
            System.out.println("3.根据id修改奶茶销量");
            System.out.println("4.根据id删除奶茶信息");
            System.out.println("5.退出");
            System.out.println("请选择:");
            int num=input.nextInt();
            if (num==1){
                m.select();//调用查询方法
            }else if (num==2){
                System.out.println("请输入新增的id:");
                m.id=input.nextInt();
                System.out.println("请输入奶茶名称:");
                m.MilkteaName=input.next();
                System.out.println("请输入奶茶说明:");
                m.MilkteaStrate=input.next();
                System.out.println("请输入奶茶价格:");
                m.MilkteaPrice=input.nextInt();
                System.out.println("请输入销量:");
                m.Sales=input.nextInt();
                System.out.println("请输入原料:");
                m.rawMaterial=input.next();
                boolean addIsok=m.insert(m);//调用新增方法
                if (addIsok){
                    System.out.println("新增成功!");
                }else {
                    System.out.println("新增失败!");
                }
            }else if (num==3){
                System.out.println("请输入修改的奶茶id:");
                m.id=input.nextInt();
                boolean upIsok=m.update(m.id,m.Sales);//调用修改方法
                if (upIsok){
                    System.out.println("请输入修改后的奶茶销量:");
                    m.Sales=input.nextInt();
                    m.update(m.id,m.Sales);
                    System.out.println("修改成功!");
                }else {
                    System.out.println("修改失败!");
                }
            }else if (num==4){
                System.out.println("请输入删除的奶茶id:");
                m.id=input.nextInt();
                boolean delIsok=m.delete(m.id);//调用删除方法
                if (delIsok){
                    System.out.println("删除成功!");
                }else {
                    System.out.println("删除失败!");
                }
            }else if (num==5){
                System.out.println("已退出系统!");
                return;
            }
            System.out.println("是否继续?(y/n)");
            isok=input.next();
        }while (isok.equals("y"));
    }
}

温馨提示:不管看没看懂都要上手敲代码,懂了敲一遍能印象深刻知道它每一步的具体作用,没懂的话跟着代码敲完一步运行一步慢慢的就会懂了,最重要的还是实操。
创作不易请不要吝啬小心心哟!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值