2014-12-28 3 views
0

В моем главном классе, у меня есть: List<Person> allPeople = new ArrayList<>();Преобразование списка объектов в массив строк

Тогда в классе у меня есть метод, который возвращает строковый массив всех Id людей (Person имеет акцесор getId()).

Каков наилучший способ преобразования списка в массив только с идентификаторами в виде строки?

Это мое текущее решение:

public String[] getAllId() { 

    Object[] allPeopleArray = allPeople.toArray(); 
    String allId[] = new String[allPeople.size()];    

    for(int i=0; i<=allPeople.size()-1; i++){ 
     allId[i] = ((Person)allPeopleArray [i]).getId();      
    } 

    return allId; 
} 

Выше работ, но есть «лучше» способ сделать это?

+0

Нужно ли возвращать 'String []' или 'List ' приемлемо? –

+1

Возможный дубликат [Самый простой способ преобразования коллекции в массив?] (Http://stackoverflow.com/questions/3293946/the-easiest-way-to-transform-collection-to-array) –

+0

Не дубликат, это а не просто преобразовать в массив, он преобразуется в массив определенного свойства (в этом случае - id) – haimlit

ответ

5
public String[] getAllId() { 
    return allPeople.stream().map(Person::getId).toArray(String[]::new); 
} 
+2

Обратите внимание, что для этого ответа требуются новые методы и синтаксис, введенные в Java 8. –

Смежные вопросы