【发布时间】:2018-09-11 05:49:24
【问题描述】:
我的POJO如下
class EventUser {
private id;
private userId;
private eventId;
}
我检索 EventUser 对象如下:
List<EventUser> eventUsers = eventUserRepository.findByUserId(userId);
假设“eventUsers”如下:
[
{"id":"id200","userId":"001","eventId":"1010"},
{"id":"id101","userId":"001","eventId":"4212"},
{"id":"id402","userId":"001","eventId":"1221"},
{"id":"id301","userId":"001","eventId":"2423"},
{"id":"id701","userId":"001","eventId":"5423"},
{"id":"id601","userId":"001","eventId":"7423"}
]
使用流式传输,并且不使用任何中间变量,如何在给定 EventUser.id 之后过滤和收集事件: 例如:
List<EventUser> filteredByOffSet = eventUsers.stream.SOMEFILTER_AND_COLLECT("id301");
结果应该是:
[{"id":"id301","userId":"001","eventId":"2423"},
{"id":"id701","userId":"001","eventId":"5423"},
{"id":"id601","userId":"001","eventId":"7423"}]
【问题讨论】:
-
@ernest_k 结果集合应该在“id301”之后有元素(而不是之前)
-
输入列表(以及初始流)是否总是按
eventId排序(该示例留下了这样的印象)? -
@JanusVarmarken 未按 eventId 排序..
标签: java java-8 java-stream