如何使用流API获取集合

时间:2018-06-05 12:16:51

标签: java loops java-8 iteration java-stream

我正在尝试从具有集合集合的数据结构中访问字符串列表。我尝试过的是返回一个集合列表,但我想要一个列表。这是我的代码:

    Collection result= (Collection)allPatientsAccessRecords.stream()
            .filter(rec -> rec.data.personId==8191).map(data->data.accessData.associatedAreas).
                    collect(Collectors.toList());

以下是源数据结构的快照: enter image description here

有人可以提示我如何使用流API获取accessData-> associatedArea(字符串列表)?

2 个答案:

答案 0 :(得分:3)

使用flatMap

allPatientsAccessRecords.stream()
        .filter(rec -> rec.data.personId == 8191)
        .flatMap(data -> data.accessData.associatedAreas.stream())
        .collect(Collectors.toList());

答案 1 :(得分:1)

这应该让你开始:

List<List<String>> example = ... ;
example.stream().flatMap(list->list.stream()).collect(...)