打印出数组列表中的所有对象 [英] Printing out all the objects in array list
本文介绍了打印出数组列表中的所有对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:结果
如何打印正确的方式对象中的内容?
块引用>我需要能够在我的数组列表打印出来的学生对象(所有变量)。这可能吗?当我尝试打印输出这样的事情例如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 inStudent
class as below:@Override public String toString() { return ("StudentName:"+this.getStudentName()+ " Student No: "+ this.getStudentNo() + " Email: "+ this.getEmail() + " Year : " + this.getYear()); }
这篇关于打印出数组列表中的所有对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文