java - 我无法从数组列表中打印用户输入

标签 java arraylist

我对数组列表不太熟悉。 如果我运行该程序,我可以输入所有变量,但是当我想查看我编写的内容时,它不会打印


import java.util.*;

public class Dynamic{
    private String fname;
    private String lname;
    private int age;
    private String course;
    private int idnum;

    public Dynamic(String Fname, String Lname, int Age, String Course, int IdNum) {
        fname = Fname;
        lname = Lname;
        age = Age;
        course = Course;
        idnum = IdNum;
    }

    public String getfName() {
        return fname;   
    }

    public String getlName() {
        return lname;
    }

    public int getAge() {
        return age;
    }

    public String getCourse() {
        return course;
    }

    public int getidNum() {
        return idnum;
    }

    public String toString()
    {
        return fname+" "+lname+"  "+age+"    "+course+"    "+idnum;
    }

    public static void main(String [] args) {

        menu();
    }//end of main
    public static void menu() {
        ArrayList<Dynamic> users = new ArrayList<>();
        Scanner in = new Scanner (System.in);
        System.out.println("1: Add Student\n2: View Student");
        int choose = in.nextInt();
        switch(choose) {
        case 1:
            addStudent(users);
            break;
        case 2:
            viewStudent(users);
            break;
        }   
    }//end of menu

这是我获取用户输入的方法

    public static void addStudent(ArrayList<Dynamic> users) {
        Scanner in = new Scanner (System.in);

        System.out.println("Please Enter Name of Student");
        String Fname = in.nextLine();
        System.out.println("Please Enter Last Name of Student");
        String Lname= in.nextLine();
        System.out.println("Please Enter Age of Student");
        int Age= in.nextInt();
        String trash = in.nextLine();
        System.out.println("Please Enter Course of Student");
        String Course= in.nextLine();
        System.out.println("Please Enter Id Number of Student");
        int IdNum = in.nextInt();
        Dynamic student = new Dynamic(Fname, Lname, Age, Course, IdNum);
        users.add(student);
        menu();
    }//end of add users

下面是我的 viewStudent 方法,我不知道有什么问题或遗漏。我也是一个初学者,我无法完全理解 arraylist 方法

    public static void viewStudent(ArrayList<Dynamic> users) {
        System.out.printf("%10s%7s%8s%10s\n", "Name","Age","Course","IdNumber");
        for (Dynamic stud : users)
        {
            System.out.println(stud);
        }   

    }//end of viewusers
}//end of studentclass

最佳答案

您可以将 ArrayList 声明为全局变量,然后可以在任何地方使用它,如下所示:-

import java.util.*;
public class Dynamic
{
    static ArrayList<Dynamic> users = new ArrayList<Dynamic>();
    private String fname;
    private String lname;
    private int age;
    private String course;
    private int idnum;
    public Dynamic(String Fname, String Lname, int Age, String Course, int IdNum)
    {
        fname = Fname;
        lname = Lname;
        age = Age;
        course = Course;
        idnum = IdNum;
    } 
    public String getfName()
    {
        return fname;   
    }
    public String getlName()
    {
        return lname;
    } 
    public int getAge()
    {
        return age;
    }
    public String getCourse()
    {
        return course;
    }
    public int getidNum()
    {
        return idnum;
    }
    public String toString()
    {
        return fname+" "+lname+"  "+age+"    "+course+"    "+idnum;
    }
    public static void main(String [] args)
    { 
        menu();
    }//end of main
    public static void menu()
    {        
        Scanner in = new Scanner (System.in);
        System.out.println("1: Add Student\n2: View Student");
        int choose = in.nextInt();
        switch(choose) {
            case 1:
                addStudent();
                break;
            case 2:
                viewStudent();
                break;
            }   
     }
    public static void addStudent()
    {
        Scanner in = new Scanner (System.in); 
        System.out.println("Please Enter Name of Student");
        String Fname = in.nextLine();
        System.out.println("Please Enter Last Name of Student");
        String Lname= in.nextLine();
        System.out.println("Please Enter Age of Student");
        int Age= in.nextInt();
        String trash = in.nextLine();
        System.out.println("Please Enter Course of Student");
        String Course= in.nextLine();
        System.out.println("Please Enter Id Number of Student");
        int IdNum = in.nextInt();
        Dynamic student = new Dynamic(Fname, Lname, Age, Course, IdNum);
        users.add(student);
        menu();
    }//end of add users
    public static void viewStudent()
    {
        System.out.printf("%10s%7s%8s%10s\n", "Name","Age","Course","IdNumber");
        for (Dynamic stud : users)
        {
            System.out.println(stud);
        }   
    }//end of viewusers
}

希望这会有所帮助

关于java - 我无法从数组列表中打印用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59014965/

相关文章:

java - 将字符串与大型数组列表进行比较的最快方法

java - Android - 比较 Array/Arraylist 元素以预先检查复选框的有效方法

java - Maven:不可解析的 POM

java - 在 Internet 上部署 Java 聊天服务器(套接字)

java - 为什么 ReadOnlyDoubleProperty 不是 Double?

java - AlertDialog.setButton 无法更改按钮文本?

java - 如何使用另一个ArrayList的对象创建一个ArrayList?

java - AppCompatButton 对 Lollipop 设备没有链式 react

java - Arraylist中的Arraylist,未经检查的错误。 java

java - 哪个效率更高 : using removeAll() or using the following HashMap technique to retain only changed records in an ArrayList