打印出数组列表中的所有对象 [英] Printing out all the objects in array list

查看:469
本文介绍了打印出数组列表中的所有对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

可能重复:结果
  如何打印正确的方式对象中的内容?


我需要能够在我的数组列表打印出来的学生对象(所有变量)。这可能吗?当我尝试打印输出这样的事情例如student.Student@82701e。我认为这是十六进制或东西。

 包学生;公共类学生{    私人字符串studentName;
    私人字符串studentNo;
    私人字符串电子邮件;
    私人诠释年;
    公益助学(){
        this.studentName = NULL;
        this.studentNo = NULL;
        this.email = NULL;
        this.year = -1;
    }    公益助学(字符串n名称,字符串nNum,字符串nEmail,诠释NYR){
        this.studentName = n名称;
        this.studentNo = nNum;
        this.email = nEmail;
        this.year = NYR;
    }    公共无效setStudentName(字符串newStudentName){
        this.studentName = newStudentName;
    }    公共无效setStudentNo(字符串newStudentNo){
        this.studentNo = newStudentNo;
    }    公共无效setEmail(字符串NEWEMAIL){
        this.email = NEWEMAIL;
    }    公共无效setYear(INT NEWYEAR){
        this.year = NEWYEAR;
    }    公共字符串getStudentName(){
        返回studentName;
    }    公共字符串getStudentNo(){
        返回studentNo;
    }    公共字符串getEmail(){
        返回的电子邮件;
    }    公众诠释了getYear(){
        返回年;
    }
}包学生;进口的java.util.ArrayList;
进口的java.util.List;
进口java.util.Scanner中;公共类studentTest {    公共静态无效的主要(字串[] args){
        扫描仪输入=新的扫描仪(System.in);        清单<的Student GT;学生=新的ArrayList();
        学生student1 =新学生();        student1.setStudentName(鲍勃·马利);
        student1.setStudentNo(N0002);
        student1.setEmail(student2@student.com);
        student1.setYear(2);        Students.add(student1);        学生STUDENT2 =新学生();        student2.setStudentName(比尔·哈维);
        student2.setStudentNo(N0003);
        student2.setEmail(student3@student.com);
        student2.setYear(2);        Students.add(STUDENT2);        学生学生三=新学生();        student3.setStudentName(约翰豆);
        student3.setStudentNo(N0004);
        student3.setEmail(student4@student.com);
        student3.setYear(2);        Students.add(学生三);
        的System.out.println(添加新同学:);
        的System.out.println(输入学生加号:);
        INT countStudents = input.nextInt();        的for(int i = 0; I< countStudents;我++){
            学生newStudents =新学生();
            的System.out.println(学生输入详细信息:+(I + 1));            的System.out.println(输入名称:);
            newStudents.setStudentName(input.next());            的System.out.println(输入号码:);
            newStudents.setStudentNo(input.next());的System.out.println(按学号搜索:);            的System.out.println(输入电子邮件:);
            newStudents.setEmail(input.next());            的System.out.println(输入年份:);
            newStudents.setYear(input.nextInt());
            Students.add(newStudents);
        }
    }
}


解决方案

覆盖的toString()方法学生类,如下:

  @覆盖
   公共字符串的toString(){
        返回(StudentName:+ this.getStudentName()+
                    学生没有+ this.getStudentNo()+
                    电子邮件:+ this.getEmail()+
                    年:+ this.getYear());
   }

Possible Duplicate:
How to print object content in correct way?

I need to be able to print out the Student objects(all variables) in my array list. Is this possible? When i try to print it outputs this sort of thing e.g student.Student@82701e. I think it's hexadecimal or something

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);
        }


    }
}

解决方案

Override toString() method in Student class as below:

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

这篇关于打印出数组列表中的所有对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆