虽然数组是不可以直接扩容的(数组长度一经确定无法改变),但可以通过新建数组然后覆盖原来的数组
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;
}
}
}
}