public static void main(String[] args) { while (true) { System.out.println("1.添加"); System.out.println("2.删除"); System.out.println("3.修改"); System.out.println("4.展示"); System.out.println("0.退出"); System.out.println("请输入您的选项"); ArrayList<stu> arr1 = new ArrayList<>(); Scanner sc = new Scanner(System.in); int i = sc.nextInt(); switch (i) { case 1: add(arr1); break; case 4: show(arr1); break; case 0: System.out.println("谢谢使用"); System.exit(0); } } } public static void add(ArrayList<stu> arr){ stu s=new stu(); Scanner sc=new Scanner(System.in); System.out.println("名字"); String name=sc.nextLine(); System.out.println("年龄"); String age=sc.nextLine(); System.out.println("学号"); String id=sc.nextLine(); System.out.println("地址"); String adddrese=sc.nextLine(); s.setAdresss(adddrese); s.setAge(age); s.setId(id); s.setName(name); arr.add(s); System.out.println("添加成功"); } public static void show(ArrayList<stu> arr){ System.out.println("学生\t姓名\t年龄\t居住地"); for(int i=0;i<arr.size();i++){ stu s=arr.get(i); System.out.println(s.getName()+"\t"+s.getAge()+"\t"+s.getId()+"\t"+s.getAdresss()); } }这段代码中在方法add中保存的数据为什么无法用方法show中的for循环输出
时间: 2024-02-14 18:29:54 浏览: 53
javadb 连接数据库的JAVA示例.rar_javadb_javadb-2.2.tar
根据你提供的代码,方法add中保存的数据应该可以通过方法show中的for循环输出。然而,我注意到你的问题可能是因为在while循环的每次迭代中,你都创建了一个新的ArrayList对象arr1。这导致在每次循环开始时,arr1都是一个空的ArrayList对象,其中没有保存任何学生数据。
为了解决这个问题,你需要将ArrayList对象的创建移到while循环之外,确保所有的学生数据都保存在同一个ArrayList对象中。修改后的代码如下:
```java
public static void main(String[] args) {
ArrayList<stu> arr1 = new ArrayList<>(); // 将ArrayList对象的创建移到while循环之外
while (true) {
System.out.println("1.添加");
System.out.println("2.删除");
System.out.println("3.修改");
System.out.println("4.展示");
System.out.println("0.退出");
System.out.println("请输入您的选项");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i) {
case 1:
add(arr1);
break;
case 4:
show(arr1);
break;
case 0:
System.out.println("谢谢使用");
System.exit(0);
}
}
}
public static void add(ArrayList<stu> arr){
stu s=new stu();
Scanner sc=new Scanner(System.in);
System.out.println("名字");
String name=sc.nextLine();
System.out.println("年龄");
String age=sc.nextLine();
System.out.println("学号");
String id=sc.nextLine();
System.out.println("地址");
String adddrese=sc.nextLine();
s.setAdresss(adddrese);
s.setAge(age);
s.setId(id);
s.setName(name);
arr.add(s);
System.out.println("添加成功");
}
public static void show(ArrayList<stu> arr){
System.out.println("学生\t姓名\t年龄\t居住地");
for(int i=0;i<arr.size();i++){
stu s=arr.get(i);
System.out.println(s.getName()+"\t"+s.getAge()+"\t"+s.getId()+"\t"+s.getAdresss());
}
}
```
通过将ArrayList对象的创建移到while循环之外,确保了所有的学生数据都保存在同一个ArrayList对象中,这样在方法show中的for循环就能正确地输出保存的数据了。
阅读全文