结合数组实现增删改查操作

虽然数组是不可以直接扩容的(数组长度一经确定无法改变),但可以通过新建数组然后覆盖原来的数组

Arrays.copyOf

用法:Arrays.copyOf(original,newLength);

案例

import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author: Bun
 * @Version: 1.0
 * @Date: 2022/9/26-14:35
 * @Name: 图书管理系统
 */
public class Demo2 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        //图书列表
        String[] bookName = {"西游记", "红楼梦", "三国演义", "水浒传"};
        double[] much = {114, 91, 98, 100};

        boolean G = true;
        while (G) {
            System.out.println("----------图书管理系统----------");
            System.out.println("1.查看图书");
            System.out.println("2.添加图书");
            System.out.println("3.修改图书");
            System.out.println("4.删除图书");
            System.out.println("0.退出系统");
            System.out.println("请选择:");
            int choose = scanner.nextInt();

            switch (choose) {
                case 1:
                    System.out.println("图书列表:");
                    for (int i = 0; i < bookName.length; i++) {
                        System.out.println((i + 1) + ". " + bookName[i] + "  " + much[i] + "元");
                    }
                    break;
                case 2:
                    boolean H = true;
                    while (H) {
                        System.out.println("请输入想要添加的图书名称");
                        String newBook = scanner.next();
                        //扩容
                        bookName = Arrays.copyOf(bookName, bookName.length + 1);
                        //将newBook存入数组中
                        bookName[bookName.length - 1] = newBook;
                        System.out.println("请输入该图书的价格");
                        double money = scanner.nextDouble();
                        //扩容
                        much = Arrays.copyOf(much, much.length + 1);
                        //将money存入much数组中
                        much[much.length - 1] = money;
                        System.out.println("添加完成");
                        System.out.println("是否继续添加? y/n");
                        String ce = scanner.next();
                        if (ce.equals("y")) {
                            H = true;
                        } else {
                            H = false;
                        }
                    }
                    break;
                case 3:
                    System.out.println("请输入想要修改的书籍的名字: ");
                    String change = scanner.next();
                    int cg = -1;
                    for (int i = 0; i < bookName.length; i++) {
                        if (change.equals(bookName[i])) {
                            cg = i;
                        }
                    }
                    //判断
                    if (cg == -1) {
                        System.out.println("未知图书!");
                    } else {
                        System.out.println("请输入图书的新名称:");
                        String newBookName = scanner.next();
                        bookName[cg] = newBookName;
                        System.out.println("请输入图书的新价格:");
                        double newMuch = scanner.nextDouble();
                        much[cg] = newMuch;
                        System.out.println("修改完成");
                    }
                    break;
                case 4:
                    System.out.println("请输入想要删除的书籍的名字");
                    String delete = scanner.next();
                    int de = -1;
                    for (int i = 0; i < bookName.length; i++) {
                        if (delete.equals(bookName[i])) {
                            de = i;
                        }
                    }
                    //判断
                    if (de == -1) {
                        System.out.println("未知图书!");
                    } else {
                        for (int i = de; i < bookName.length - 1; i++) {
                            bookName[i] = bookName[i + 1];
                            much[i] = much[i + 1];
                        }
                        bookName = Arrays.copyOf(bookName, bookName.length - 1);
                        much = Arrays.copyOf(much, much.length - 1);
                    }
                    break;
                case 0:
                    G = false;
                    break;
            }
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值