简体   繁体   English

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

[英]How to print the value of arraylist contents in my logcat?

My question is how to print print the value of arraylist contents in my logcat? 我的问题是如何在logcat中打印打印arraylist内容的值? Each array has two string.. Do I have to change it to array first? 每个数组都有两个字符串。我是否必须先将其更改为数组?

The following is my school class: 以下是我的学校课:

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

The following is my student class: public class 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;
     }
   }

The following is my main activity: 以下是我的主要活动:

 ...

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

The result is as followed: 结果如下:

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

Override method toString() in class STUDENT . 覆盖类STUDENT方法toString() For instance: 例如:

public class STUDENT {

        String names;
        String age;

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

You can write a output method for customized output, like: 您可以编写用于自定义输出的输出方法,例如:

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

And use the code below to call this function: 并使用以下代码调用此函数:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM