首页 > 解决方案 > 如何使用流 API 获取集合

问题描述

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

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

这是源数据结构的快照: 在此处输入图像描述

有人可以提示我如何使用流 API 作为结果获取 accessData->associatedArea(list of string) 吗?

标签: javaloopsjava-8iterationjava-stream

解决方案


采用flatMap

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

推荐阅读