2014-09-10 50 views
0

我有一個具有事件列表的類。Java:將對象列表轉換爲別的東西

public class EventScheduler{ 

    List<Event> event 

} 

public class Event{ 

    private String text; 
    private int timestamp; 

} 

我有一個EventView,它需要一個事件作爲構造函數,並有getters和沒有setter。

它基本上允許查看事件中設置的變量的子集,同時以與事件類似的方式進行操作。

public class EventView{ 

    public EventView(Event event){ 
     this.event = event; 
    } 

    public String getText(){ 
     return event.getText(); 
    } 

    //no timestamp getter as its not allowed for this view object. 
} 
這種設置

那麼,什麼是轉換List<Event>List<EventView>最快的方法是什麼? 或某種替代方案。

+0

如下回答,您可以使用實例化對象「新」。 – akshayb 2014-09-10 11:55:17

+0

您可以在事件列表上編寫一個迭代器for循環,併爲每個事件創建一個EventView對象。對於Java 8,除for循環外,還有其他語法可供使用。 – 2014-09-10 11:55:17

回答

4

與Java 8:

List<EventView> views = events.stream() 
           .map(EventView::new) 
           .collect(Collectors.toList()); 
3

遍歷每個Event併爲它創建一個EventView,然後將它傳遞給一個列表:

List<EventView> eventViewList = new ArrayList<EventView>(); 
if(eventList != null) { 
    for(Event event : eventList) { 
     EventView eventView = new EventView(event); 
     eventViewList.add(eventView); 
    } 
}