获取ArrayList打印到另一个方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取ArrayList打印到另一个方法相关的知识,希望对你有一定的参考价值。
我超级困惑,因为怎么可能从另一个方法中获取ArrayList,并将其打印到另一个方法?我的问题是,我的代码是关于学生注册系统的,它有2个方法,分别是admin和student,所以从admin方法中,我们可以添加我们想要的数组,当我们在admin方法中打印出来时,它可以正常工作。但是当我尝试在学生方法中打印出来的时候,似乎不能工作。这是代码。
import java.util.*;
public class myStudent
boolean logins = false;
int myId;
String addCourse="No Record";
String NewCourse;
String removeCourse="No Record";
int modifyCourse;
String password = null;
ArrayList test = new ArrayList();
public static void main(String[] args)
myStudent obj0 = new myStudent();
obj0.login();
void login()
myStudent obj1 = new myStudent();
Scanner myScanner = new Scanner(System.in);
System.out.println(" **Student Registration**");
System.out.println("\t--LOGIN--");
System.out.println("\n1)Login as student \n2)Login as admin \n3)Exit");
System.out.print(">");
int optionMenu = myScanner.nextInt();
if(optionMenu == 1)
obj1.showMenuStudent();
else if(optionMenu == 2)
obj1.showMenuAdmin();
else if(optionMenu == 3)
System.out.println("THANK YOU!");
System.exit(0);
void showMenuAdmin()
if (!logins)
//String myPass;
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--LOGIN--");
try
System.out.print("Admin ID : ");
myId = myScanner.nextInt();
catch(Exception e)
System.out.println("INVALID ID!");
System.exit(0);
System.out.print("Admin Password : ");
password = myScanner.next();
logins = true;
char option;
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--WELCOME--");
System.out.println("A. Create Course");
System.out.println("B. Drop Course");
System.out.println("C. Modify Course");
System.out.println("D. Display Course");
System.out.println("E. Logout");
do
System.out.print("Enter An Option > ");
option = myScanner.next().charAt(0);
System.out.print("\n");
switch(option)
case 'A':
System.out.print("Create Course(Maximum is 6) :");
addCourse = myScanner.next();
test.add(addCourse);
System.out.println("\nCourse Added Successfully!");
display();
break;
case 'B':
Object[] myArray = test.toArray();
System.out.println("Current Courses List: ");
int k=1;
for(int i=0; i < myArray.length; i++)
System.out.println(k + ". " + myArray[i]);
k++;
System.out.println("Enter course name you want to remove :");
System.out.println("Enter 'back' to cancel");
System.out.print(">");
removeCourse = myScanner.next();
if(removeCourse!="back")
test.remove(removeCourse);
System.out.println("\nSucceed");
display();
else
display();
break;
case 'C':
Object[] myArray2 = test.toArray();
System.out.println("Current Courses List: ");
int m=1;
for(int i=0; i < myArray2.length; i++)
System.out.println(m + ". " + myArray2[i]);
m++;
System.out.println("Select course you want to modify :");
System.out.print(">");
modifyCourse = myScanner.nextInt();
try
if(modifyCourse==1)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(0, NewCourse);
System.out.println("Succeed!");
display();
else if(modifyCourse==2)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(1, NewCourse);
System.out.println("Succeed!");
display();
else if(modifyCourse==3)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(2, NewCourse);
System.out.println("Succeed!");
display();
else if(modifyCourse==4)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(3, NewCourse);
System.out.println("Succeed!");
display();
else if(modifyCourse==5)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(4, NewCourse);
System.out.println("Succeed!");
display();
else if(modifyCourse==6)
System.out.print("Change to :");
NewCourse=myScanner.next();
test.set(5, NewCourse);
System.out.println("Succeed!");
display();
else
System.out.print("Invalid!");
display();
catch(Exception e)
System.out.print("Invalid, Course not available!");
display();
break;
case 'D':
Object[] myArray3 = test.toArray();
System.out.println("Courses List: ");
int j=1;
for(int i=0; i < myArray3.length; i++)
System.out.println(j + ". " + myArray3[i]);
j++;
display();
break;
while(option != 'E');
System.out.println("Logged Out Successfully.Thank You!");
login();
void showMenuStudent()
if (!logins)
Scanner myScanner = new Scanner(System.in);
System.out.println("\n--LOGIN--");
try
System.out.print("Student ID : ");
myId = myScanner.nextInt();
catch(Exception e)
System.out.println("INVALID ID!");
System.exit(0);
System.out.print("Student Password(Default is IC Number) : ");
password = myScanner.next();
logins = true;
Object[] myArray4 = test.toArray();
int n=1;
for (Object myArray41 : myArray4)
System.out.println(n + ". " + myArray41);
n++;
void display()
showMenuAdmin();
我真的希望有人能理解我的问题并尝试解决它... ... 请:(和谢谢你
这是从开始到结果的输出。
OUTPUT:
学生注册
--登录--
1)以学生身份登录
2)以管理员身份登录
3)退出
2
--登录--
管理員編號:123
管理员密码:321
--欢迎...
A. 创建课程
B. 退学课程
C. 修改课程
D. 展示课程
E. 登出
输入一个选项> A
创建课程(最多6个) :CS123。
成功添加课程!
--欢迎--
A. 创建课程
B. 退学课程
C. 修改课程
D. 展示课程
E. 登出
输入一个选项 > E
登录成功.谢谢!
学生注册
--登录--
1)以学生身份登录
2)以管理员身份登录
3)退出
1
--登录--
学生编号 : 123
学生密码(默认为IC号):321。
[]Enter An Option >
/在这一点上,我不知道为什么它会这样运行,我只是想打印出管理员在数组中输入的内容,但就像学生方法只是重新运行管理员方法一样,即使我从来没有调用它,它也显示数组是空的。哪些地方是我的错误,还是我遗漏了什么?
所以我运行了你的代码,发现了问题。你正在创建一个新的 myStudent
每当 login()
,如果你。
- 删掉这一行
myStudent obj1 = new myStudent();
- 并替换为
obj1.showMenuStudent();
与showMenuStudent()
- 并替换为
obj1.showMenuAdmin();
与showMenuAdmin();
你将解决这个问题,并将得到你想要的输出。这是我得到的输出,希望它与你想得到的同步。
**Student Registration**
--LOGIN--
1)Login as student
2)Login as admin
3)Exit
>2
--LOGIN--
Admin ID : 1
Admin Password : 1
--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > A
Create Course(Maximum is 6) :CS123
Course Added Successfully!
--WELCOME--
A. Create Course
B. Drop Course
C. Modify Course
D. Display Course
E. Logout
Enter An Option > E
Logged Out Successfully.Thank You!
**Student Registration**
--LOGIN--
1)Login as student
2)Login as admin
3)Exit
>1
1. CS123
Enter An Option >
以上是关于获取ArrayList打印到另一个方法的主要内容,如果未能解决你的问题,请参考以下文章