2014-12-28 26 views
0

的数组在我的主类,我有:List<Person> allPeople = new ArrayList<>();转换对象的列表,以字符串

然后在课堂上我有一个返回所有的人Id(人的String数组的方法具有的存取方法getId())。

什么是最简单的方式将列表转换为只有ID为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; 
} 

上述工作,但有一个“好”的方式来做到这一点?

+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中引入的新方法和语法。 –