2017-03-08 53 views
0

我總是需要提取從列表中的任何類型的對象的數組提取只有一個屬性的數組,讓我的代碼解釋:如何從列表

這是我的名單:

List<myObj> myList = new ArrayList<myObj>(); 

我的目標有兩個對象, '富' 和 '酒吧':

public class myObj{ 

    private Object foo; 
    private Object bar; 

    public myObj(Object foo, Object bar) { 
     super(); 
     this.foo = foo; 
     this.bar = bar; 
    } 
} 

所以,我填充myList中:

myList.add(new myObj(foo1, bar1)); 
myList.add(new myObj(foo2, bar2)); 
myList.add(new myObj(foo3, bar3)); 

有什麼辦法可以在沒有編程的情況下將foo的對象提取到數組中,或者爲此創建方法嗎?例如:

Return: Array [foo1, foo2, foo3]

+2

我不認爲有。你必須迭代myList並提取你想要的對象 – alexgbelov

+2

只是一個方面說明:當你的類沒有實際擴展任何其他類時,我沒有看到調用'super()'的理由。 – domsson

+5

'myList.stream().map(myObj :: getFoo).collect(Collectors.toList())'。不要使用數組。使用列表。 –

回答

1

正如註釋指示由@JB Nizet:

myList.stream().map(myObj::getFoo).collect(Collectors.toList‌​())。不要使用數組。使用清單

它解決了我的問題!謝謝!