0

我需要过滤带有响应的列表

   ResponseEntity<Gruoup> listaGrupo = monstarListaGrupo(login, token);
List<Diretorio> diretorios = lista.stream()
        .filter(x-> x.getGrupoAd() == listaGrupo.getBody().getGrupos())

我试着那样做,但他不让,因为它说一种类型是列表,另一种是字符串

考试年龄列表中 RespondeEntity 的公寓过滤器

响应实体:

    {
        "name": "barry",
        "age": 20
    },
            {
        "name": "allan",
        "age": 17
    },
     {
        "name": "julie",
        "age": 20
    },
     {
        "name": "jord",
        "age": 19
    }

列表:

    { 
        "name": "jhenny",
        "age": 20,
        "color": "red"
        
    },
    {
        "name": "barry",
        "age": 20,
        "color": "black"
    },
     {
        "name": "julie",
        "age": 20,
        "color": "white"
    }

    

结果最终名单

    {
        "name": "barry",
        "age": 20,
        "color": "black"
    },
     {
        "name": "julie",
        "age": 20,
        "color": "white"
    }
    
4

1 回答 1

1

您正在尝试将 aString与 a进行比较List<Grupo>,但您似乎想根据包含directio 的 grupoAd 的响应实体进行过滤。

首先将列表中的字符串收集到一个集合中,然后contains()用于过滤器,如下所示:

ResponseEntity<Gruoup> listaGrupo = monstarListaGrupo(login, token);
Set<String> names = listaGrupo.getBody().getGrupos().stream().collect(toSet());
List<Diretorio> diretorios = lista.stream()
    .filter(x -> names.contains(x.getGrupoAd()))
    ...
于 2020-09-21T22:51:45.023 回答