我想弄清楚處理以下情況的最佳方法。如何流化對象的映射並將拼合圖映射到新對象的單個列表?
我有地圖事件,在通過時間戳分組的數據庫發生了:
[2016-04-01 00:00:00, [event1, event2, event 3]]
[2016-02-01 00:00:00, [event5, event6]]
[2016-01-01 00:00:00, [event7, event8, event9, event10]]
我想在一個tableview中呈現這些數據與每個事件的時間戳一行。但是,有些值可能會重複。
例如:
事件的定義是
class Event() {
LocalDateTime timestamp
String eventName
String eventDescription
}
我想拉平到這樣
class DisplayEvent() {
LocalDateTime timestamp
Collection<String> eventName
Collection<String> eventDescription
}
這樣的結構原始地圖我留下了轉換後以下列表:
displayEvent1
displayEvent2
displayEvent3
其中每個顯示事件都有來自原始事件的密鑰,但包含所有可變數據的數組。
我創建的地圖如下:
Map<LocalDateTime, List<Event>> eventsByTimestamp =
events
.stream()
.collect(Collectors.groupingBy(ev -> ev.timestampProperty().get()));
希望是有道理的。
也許減少比壓扁一個更好的詞,有些想法彈出然後:-) –