You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Stream将Response列表转换为Map<Boolean, List<Response>>

按Response的status分组为Map<Boolean, List>

现有Response类

class Response{
    Boolean status;
    String message;
    Integer id;

    Response(Boolean s, String m, Integer id)
    {
        status=s;
        message=m;
        this.id=id;
    }
    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        // 注意:这里存在变量名冲突问题,正确写法应为 this.id = id;
        id = id;
    }
}

初始化的Response列表

List<Response> response = new ArrayList<Response>();
response.add(new Response(Boolean.TRUE,"HelloTrue",1));
response.add(new Response(Boolean.FALSE,"HelloFalse",2));

按status分组的实现代码

通过Java Stream的Collectors.groupingBy方法可以直接完成分组需求,代码如下:

Map<Boolean, List<Response>> responsesResult = response.stream()
    .collect(Collectors.groupingBy(Response::getStatus));

说明

  • Collectors.groupingBy(Response::getStatus)作为分类器,以每个Response对象的status值作为Map的key
  • 分组后,Map中会自动生成两个entry:key为true时对应所有status为TRUE的Response列表,key为false时对应所有status为FALSE的Response列表

内容的提问来源于stack exchange,提问作者Nidhi257

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:57:10