有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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"}]

共 (2) 个答案

  1. # 1 楼答案

    如果不使用任何中间变量,就无法做到这一点。找到位置并迭代到最后(参见下面的问题,更准确地回答) enter link description here

  2. # 2 楼答案

    使用Java9中的“dropWhile