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

如何使用Java Streams获取格式为jpg的图片URL并以逗号分隔

现有包含多张不同类型图片的产品A,如何使用Java Streams筛选出包含jpg格式的图片,并将其对应的URL以逗号分隔输出?产品A的数据结构如下:

product A :{
    name: a
    images: [
      {
           img1: 1
           url: url1
           type: [
             {
               format: jpg
             }
             {
               format: png
             }

          ]
      },
        {
           img2: 1
           url: url2
           type: [
             {
               format: mp4
             }
             {
               format: png
             }

          ]
      },
      {
       img3: 3
       url: url3
       type: [
         {
           format: jpg
         }
         {
           format: mp4
         }

      ]
      }
    ]
}
解决方案

1. 定义对应实体类

先根据数据结构创建Java实体类,用于映射数据:

import java.util.List;

// 产品类
public class Product {
    private String name;
    private List<Image> images;

    // 构造方法、getter、setter 自行补充
}

// 图片类
public class Image {
    private String url;
    private List<ImageType> type;

    // 其他字段、构造方法、getter、setter 自行补充
}

// 图片类型类
public class ImageType {
    private String format;

    // 构造方法、getter、setter 自行补充
}

2. 用Streams实现筛选与拼接

通过嵌套Stream完成筛选,再用收集器拼接结果:

import java.util.stream.Collectors;

public class ImageUrlFilter {
    public static void main(String[] args) {
        // 假设已经初始化好Product实例productA
        String jpgUrls = productA.getImages().stream()
                // 过滤出包含jpg格式的图片(兼容大小写)
                .filter(image -> image.getType().stream()
                        .anyMatch(type -> "jpg".equalsIgnoreCase(type.getFormat())))
                // 提取图片URL
                .map(Image::getUrl)
                // 用逗号分隔拼接成字符串
                .collect(Collectors.joining(","));

        System.out.println(jpgUrls); // 输出结果:url1,url3
    }
}

关键逻辑说明

  • 过滤条件:使用filter结合嵌套的anyMatch,判断当前图片的类型列表中是否存在format为jpg的项,equalsIgnoreCase可兼容大小写差异
  • 提取URL:通过map操作将Image对象转换为对应的URL字符串
  • 拼接结果:Collectors.joining(",")直接将所有符合条件的URL用逗号连接成一个完整字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:25:30