2016-08-17 35 views
1

我的班級在下面,我如何投ArrayList<TestA>String[]只有ItemText值沒有任何for循環。哪種方法最好?Java自定義列表到字符串數組

public class TestA implements Serializable { 
    private String ItemSrc; 
    private String ItemText; 

    public String getItemText() { 
     return this.ItemText; 
    } 

} 
+1

爲什麼沒有for循環?什麼是一個while循環?使用java8?流?爲什麼它必須是演員? –

+0

你不能。你必須迭代所有的元素,並且只把「ItemText」放到你新創建的數組中。 – f1sh

+0

列表類是通用的,必須首先加載。對於其他控件,只能使用此類中的一個屬性值。所以我必須演員上課。 –

回答

4

假設你有ArrayList<TestA> tests,並且可以使用java-8

tests.stream().map(TestA::getItemText).toArray(String[]::new); 
+0

比我的答案更好,因爲它消除了對演員的需求。好答案! – f1sh

+0

*可以使用java-8 *危險的假設。在Java 7的情況下該怎麼辦? –

+0

是java-8安全嗎? –

2

您可以使用java8的流:

ArrayList<TestA> l = [...]; // your arrayList 
String[] array = (String[]) l.stream().map(a->a.ItemText).toArray();