获取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打印到另一个方法的主要内容,如果未能解决你的问题,请参考以下文章

java用poi往excel里写数据遇到换行问题

纯并行添加的Java ArrayList.add() 方法线程安全吗? [复制]

ArrayList详细介绍

Java集合之ArrayList

第三章.泛型集合

ArrayList详解