java - 打印出数组列表中的所有对象

标签 java arrays printing arraylist

<分区>

我需要能够打印出数组列表中的 Student 对象(所有变量)。这可能吗?当我尝试打印时,它会输出这种东西,例如 student.Student@82701e。我认为它是 hexadecimal 之类的

这是我的代码:

package student;

public class Student {

    private String studentName;
    private String studentNo;
    private String email;
    private int year;


    public Student() {
        this.studentName = null;
        this.studentNo = null;
        this.email = null;
        this.year = -1;
    }

    public Student(String nName, String nNum, String nEmail, int nYr) {
        this.studentName = nName;
        this.studentNo = nNum;
        this.email = nEmail;
        this.year = nYr;
    }

    public void setStudentName(String newStudentName) {
        this.studentName = newStudentName;
    }

    public void setStudentNo(String newStudentNo) {
        this.studentNo = newStudentNo;
    }

    public void setEmail(String newEmail) {
        this.email = newEmail;
    }

    public void setYear(int newYear) {
        this.year = newYear;
    }

    public String getStudentName() {
        return studentName;
    }

    public String getStudentNo() {
        return studentNo;
    }

    public String getEmail() {
        return email;
    }

    public int getYear() {
        return year;
    }
}

package student;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class studentTest {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);



        List<Student> Students = new ArrayList();


        Student student1 = new Student();

        student1.setStudentName("Bob Marley");
        student1.setStudentNo("N0002");
        student1.setEmail("student2@student.com");
        student1.setYear(2);

        Students.add(student1);

        Student student2 = new Student();

        student2.setStudentName("Bill Harvey");
        student2.setStudentNo("N0003");
        student2.setEmail("student3@student.com");
        student2.setYear(2);

        Students.add(student2);

        Student student3 = new Student();

        student3.setStudentName("John Beans");
        student3.setStudentNo("N0004");
        student3.setEmail("student4@student.com");
        student3.setYear(2);

        Students.add(student3);


        System.out.println("Add new students: ");
        System.out.println("Enter number of students to add: ");
        int countStudents = input.nextInt();

        for (int i = 0; i < countStudents; i++) {
            Student newStudents = new Student();


            System.out.println("Enter details for student: " + (i + 1));

            System.out.println("Enter name: ");
            newStudents.setStudentName(input.next());

            System.out.println("Enter Number: ");
            newStudents.setStudentNo(input.next());System.out.println("Search by student number: ");



            System.out.println("Enter email: ");
            newStudents.setEmail(input.next());

            System.out.println("Enter year: ");
            newStudents.setYear(input.nextInt());
            Students.add(newStudents);
        }


    }
}

最佳答案

重写 Student 类中的 toString() 方法如下:

   @Override
   public String toString() {
        return ("StudentName:"+this.getStudentName()+
                    " Student No: "+ this.getStudentNo() +
                    " Email: "+ this.getEmail() +
                    " Year : " + this.getYear());
   }

关于java - 打印出数组列表中的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13001427/

相关文章:

Java 查询从 Elasticsearch 返回精确值

arrays - 更改传递给函数的参数类型时,类型不匹配

java - Spring Session JDBCTokenRepository 覆盖默认表

java - 线程 "main"org.apache.spark.SparkException : Only one SparkContext may be running in this JVM (see SPARK-2243) 中的异常

python - 如何使用 numpy.savez 将带有子数组的数组保存到单独的 .npy 文件中

c++ - 无法对包含字符串 C++ 的结构数组进行操作

c# - 打印到 Zebra 打印机会产生微弱和模糊的图像

Ruby的to_s方法问题(来自Ax book 2nd edition)

javascript - Highcharts: "Print all"按钮

java - Java 中多个请求共享同一实例(OOP)