Java8流:在满足条件后收集元素
我的建议如下
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之后过滤和收集事件。身份证件: 例:
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"}]
# 1 楼答案
如果不使用任何中间变量,就无法做到这一点。找到位置并迭代到最后(参见下面的问题,更准确地回答) enter link description here
# 2 楼答案
使用Java9中的“dropWhile”