将对象列表转换为字符串数组

时间:2014-12-28 16:56:15

标签: java

在我的主要课程中,我有:List<Person> allPeople = new ArrayList<>();

然后在类中我有一个方法,它返回所有Id人的String数组(Person有一个访问方法getId())。

将列表转换为只有Ids为String的数组的最漂亮的方法是什么?

这是我目前的解决方案:

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

以上是有效的,但有没有“更好”的方法呢?

1 个答案:

答案 0 :(得分:5)

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