2017-02-08 2 views
-2

У меня есть класс, скажем Person со всеми атрибутами String. У меня есть ArrayList < Person>. Я хочу преобразовать этот ArrayList < Лицо> в список < String []>. Как я могу преобразовать это с помощью java?Как преобразовать Список объектов в список массива String в java?

+0

Ваш вопрос в заголовке и теле противоречат друг другу. Вы хотите преобразовать в массив или список? –

ответ

0

Если предположить, что каждый атрибут класса человека является элементом в массиве строк, следующий будет делать работу:

Человек Класс:

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 
0

Я не уверен, что я четко понимаю, о чем вы просите, но вы всегда можете сделать простой цикл для своих людей.

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; 
} 
} 
Смежные вопросы