【问题标题】:How to print an ArrayList? - java如何打印 ArrayList? - 爪哇
【发布时间】:2021-03-11 20:04:32
【问题描述】:

问题将在下面。

public class University {
ArrayList<Student> students;

public University() {
    students = new ArrayList<Student>();
}

public void addStudent(Student students) {
    this.students.add(students);
}}

public class Student {
String name;
String studentID;
static int studentNumber = 0;

Student(String name, String sID){
    this.name = name;
    this.studentID = sID;
    studentNumber++;
}}

public class TestUniversity {

public static void main(String[] args) {
    University universityRegister = new University(); 
    Student studentRegister = new Student("Rachel Green", "a1234");
    universityRegister.addStudent(studentRegister);
    
    studentRegister = new Student("Monica Geller", "a12345");
    universityRegister.addStudent(studentRegister);
    
    studentRegister = new Student("Ross Geller", "a1111");
    universityRegister.addStudent(studentRegister);
    
    System.out.println("Number of student in University: " + Student.studentNumber);        
}}

A.我在 3 个不同的文件中创建了 3 个类,1.Student、2.University、3.UniversityTester。

B.我创建了 3 个 Studnet 类型的对象,并将它们作为 ArrayList 存储在 University 类中。

我想知道如何打印学生的 ArrayList,包括 UniversityTester 类的所有信息?将来,我将创建另一个名为 Stuff 的对象,并将其作为 ArrayList stuffList 存储在 University 类中。因此,我不想打印学生班级的学生名单。

【问题讨论】:

  • 你也可以在Student类中添加一个打印方法,以你想要的格式打印一个学生的数据。然后遍历 universityRegister.students 并为每个检索到的学生调用前一个方法。

标签: java class object arraylist


【解决方案1】:

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

import java.util.StringJoiner;

public class Student {
  String name;
  String studentID;
  static int studentNumber = 0;

  Student(String name, String sID) {
    this.name = name;
    this.studentID = sID;
    studentNumber++;
  }

  @Override
  public String toString() {
    return new StringJoiner(", ", Student.class.getSimpleName() + "[", "]")
        .add("name='" + name + "'")
        .add("studentID='" + studentID + "'")
        .toString();
  }
}

现在您可以在 TestUniversity 中按如下方式打印数组列表:

System.out.println("Student Details: " + universityRegister.students);

【讨论】:

  • 太棒了!如果它解决了问题,则接受答案并给予支持。继续编码!!
【解决方案2】:

将此添加到您的学生班级:

  @Override
  public String toString() {
    return String.format("Student: %s , StudentID: %s", name, studentID);
  }

然后你可以像这样打印整个数组:

System.out.println("Students: " universityRegister.students);

//Or like this:

for(Student st: universityRegister.students){
 System.out.println(st);
}

【讨论】:

  • 谢谢,我喜欢它!我第一次看到方法 String.format();
  • 很高兴(:如果它解决了您的问题,请记住在它的左上角接受这个答案,并给它一个积极的评价。谢谢:3
猜你喜欢
  • 2012-08-15
  • 1970-01-01
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多