如何在我的logcat中打印arraylist内容的值



我的问题是如何打印logcat中arraylist内容的值?每个数组有两个字符串。。我必须先把它改成数组吗?

以下是我的学校班级:

         public class SCHOOL {
private String schoolid;
private String schoolname;
private List<STUDENT> students = new ArrayList<>();
// getters and setters for schoolid, schoolname
public String getSchoolid() {
    return schoolid;
}
public void setSchoolid(String schoolid) {
    this.schoolid = schoolid;
}
public String getSchoolname() {
    return schoolname;
}
public void setSchoolname(String schoolname) {
    this.schoolname = schoolname;
}

public void setStudents(List<STUDENT> students) {
    this.students = students;
}

public List<STUDENT> getStudents() {return this.students;}

public void addStudent(String names, String age) {
    STUDENT student = new STUDENT();
    student.setNames(names);
    student.setAge(age);
    students.add(student);
   }

下面是我的学生班:公开课学生

        private String names;
        private String age;
        public String getNames() {
            return names;
        }
       public void setNames(String names) {
            this.names = names;
        }
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
           this.age = age;
     }
   }

以下是我的主要活动:

 ...
    SCHOOL school = new SCHOOL();
    school.addStudent("kent", "43");
    school.addStudent("Winnie", "42");
    school.addStudent("Dennis", "41");
    List<STUDENT> studentsList = school.getStudents();
    Log.d(tag, String.valueOf(studentsList));
    ...

结果如下:

    Tag Activity: [com.example.spidey.jsontosql.STUDENT@5286b6d8,    
                   com.example.spidey.jsontosql.STUDENT@5286b768, 
                   com.example.spidey.jsontosql.STUDENT@5286b7b0]

覆盖类STUDENT中的方法toString()。例如:

public class STUDENT {
        String names;
        String age;
        @Override
        public String toString() {
            return "STUDENT{" +
                    "names='" + names + ''' +
                    ", age='" + age + ''' +
                    '}';
        }
    }

您可以为自定义输出编写一个输出方法,如:

    public String outputStudents(List<STUDENT> studentsList) {
       StringBuilder sb = new StringBuilder();
       foreach (STUDENT student: studentLIst) {
               sb.append(student.names);
               sb.append(",");
               sb.append(student.age);
               sb.append(";");
       }
       return sb;
    }

并使用以下代码调用此函数:

 List<STUDENT> studentsList = school.getStudents();
 Log.d(tag, outputStudents(studentsList));

最新更新