objetos metodos listas imprimir elementos clase bidimensional array agregar java arrays printing arraylist

java - metodos - Imprimir todos los objetos en la lista de arreglos



listas en java netbeans (3)

Debes definir public String toString() método public String toString() en tu clase de Student . Por ejemplo:

public String toString() { return "Student: " + studentName + ", " + studentNo; }

Esta pregunta ya tiene una respuesta aquí:

Posible duplicado:
Cómo imprimir el contenido del objeto de manera correcta?

Necesito poder imprimir los objetos de Estudiante (todas las variables) en mi lista de arreglo. es posible? Cuando intento imprimir me sale este tipo de cosas, por ejemplo student.Student@82701e . Creo que es hexadecimal o algo

Este es mi código:

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("[email protected]"); student1.setYear(2); Students.add(student1); Student student2 = new Student(); student2.setStudentName("Bill Harvey"); student2.setStudentNo("N0003"); student2.setEmail("[email protected]"); student2.setYear(2); Students.add(student2); Student student3 = new Student(); student3.setStudentName("John Beans"); student3.setStudentNo("N0004"); student3.setEmail("[email protected]"); 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); } } }


Reemplazar el método toString() en Student clase de Student la siguiente manera:

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


Siempre que imprima cualquier instancia de su clase, se llama a la implementación default de la clase Object , que devuelve la representación que está obteniendo. Contiene dos partes : - Type y Hashcode

Entonces, en student.Student@82701e que obtienes como salida ->

  • student.Student es el Type , y
  • 82701e es el HashCode

Por lo tanto, debe sobrescribir un método toString en su clase de Student para obtener String representation requerida:

@Override public String toString() { return "Student No: " + this.getStudentNo() + ", Student Name: " + this.getStudentName(); }

Entonces, cuando desde su clase main , imprima su ArrayList , invocará el método toString para cada instancia, que overrided lugar de la clase de Object : -

List<Student> students = new ArrayList(); // You can directly print your ArrayList System.out.println(students); // Or, iterate through it to print each instance for(Student student: students) { System.out.println(student); // Will invoke overrided `toString()` method }

En los dos casos anteriores, se invocará el método toString anulado en Student clase Student y se imprimirá la representación adecuada de cada instancia.