2015-10-15 77 views
4

有沒有更好的方式來填補的ArrayList像這樣(我已經做了這樣的Java 7中):的Java 8 - 填充的ArrayList

List<ScheduleIntervalContainer> scheduleIntervalContainers = new ArrayList<>(); 
scheduleIntervalContainers.add(scheduleIntervalContainer); 
+1

那種方式有什麼問題? – Eran

+0

我沒有意識到一種方式,但Java 8的功能並不是我的專業知識。但是當我看着你的代碼時,唯一讓它看起來很長並且很麻煩的是長變量名。就我個人而言,我不會縮短這些因爲我寧願描述性的名字和簡短的自我記錄代碼,任何人都必須維護代碼。 – Sammy

+2

'List scheduleIntervalContainers = new ArrayList <>(Arrays.asList(scheduleIntervalContainer));' –

回答

10

來一補List,有可能產生無限Stream使用Stream.generate(s),然後將結果數量限制爲limit(maxSize)

例如,以填充10個新的ScheduleIntervalContainer一個List對象:

List<ScheduleIntervalContainer> scheduleIntervalContainers = 
     Stream.generate(ScheduleIntervalContainer::new).limit(10).collect(toList()); 

generate方法以一個Supplier:在這種情況下,供應商的方法參考創建的每個時間ScheduleIntervalContainer新實例。