繁体   English   中英

如何在java中将对象列表转换为字符串数组列表?

[英]How to convert List of Objects into List of String array in java?

我有一个类,比如说 Person 具有所有 String 属性。 我有一个 ArrayList<Person>。 我想将此 ArrayList<Person> 转换为 List<String[]>。 我如何使用 java 转换它?

我不确定我是否清楚地了解您的要求,但您始终可以对自己的人进行简单的循环。

ArrayList<Person> people = new ArrayList<Person>();
List<String[]> everyonesAtt = new ArrayList<String[]>();
for (Person person : people) {
    everyonesAtt.add(person.getAttributes());
}

以及 Person 类的示例:

public class Person {

private String name;

private String surname;

public String[] getAttributes(){
    String[] atts = {name, surname};
    return atts;
}   
}

假设 person 类的每个属性都是字符串数组中的一个项目,以下将完成这项工作:

人物等级:

public class Person {
private String title;
private String firstName;
private String lastName;

public Person(String title, String firstName, String lastName) {
    super();
    this.title = title;
    this.firstName = firstName;
    this.lastName = lastName;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

}

PersonConverter 类:

import java.util.ArrayList;
import java.util.List;

public class PersonConverter {

public List<String[]> convertPersonList(List<Person> list) {
    List<String[]> result = new ArrayList<>();

    for (Person p : list) {
        result.add(convertPerson(p));
    }

    return result;
}

private String[] convertPerson(Person p) {
    String[] persontAttributes = new String[3];
    persontAttributes[0] = p.getTitle();
    persontAttributes[1] = p.getFirstName();
    persontAttributes[2] = p.getLastName();
    return persontAttributes;
}
}

考试:

import java.util.ArrayList;
import java.util.List;

public class Main {

public static void main(String[] args) {
    //create a person list
    List<Person> personList = new ArrayList<>();

    Person john = new Person("Mr.", "John", "Lenonn");
    Person paul = new Person("Sir", "Paul", "McCartney");

    personList.add(john);
    personList.add(paul);

    //create an instance of the person converter
    PersonConverter pc = new PersonConverter();

    //perform the conversion
    List<String[]> convertedList = pc.convertPersonList(personList);

    //print the result to the console
    for (String[] stringArray : convertedList) {
        for (String s : stringArray) {
            System.out.println(s);
        }
        System.out.println();
    }
}

}

这打印出来:

Mr.
John
Lenonn

Sir
Paul
McCartney

暂无
暂无

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

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