游乐游手机版
首页/AI教程/文章详情

Java List根据ID数组过滤列表

时间:2026-05-30 15:28
一、介绍 这段代码展示的其实是一个非常典型的场景:如何用 Java 8 的 Stream 流高效过滤集合中的元素。咱们直接看代码——先创建一个包含 10 个 User 对象的列表,每个对象里都有 id 和 name 两个字段。接着定义了一个 Integer 类型的数组 arr,里面存放了我们需要筛选

一、介绍

这段代码展示的其实是一个非常典型的场景:如何用 Java 8 的 Stream 流高效过滤集合中的元素。咱们直接看代码——先创建一个包含 10 个 User 对象的列表,每个对象里都有 id 和 name 两个字段。接着定义了一个 Integer 类型的数组 arr,里面存放了我们需要筛选的 id 值:1、2、5、6、9。

核心操作很简单:通过 stream() 把列表转换为流,然后使用 filter 方法进行过滤,过滤条件中用 Arrays.asList(arr).contains(item.getId()) 来判断当前元素的 id 是否存在于目标数组中。最后使用 collect(Collectors.toList()) 将结果收集为新的列表,再通过 forEach 遍历打印。

但这里面藏着一个极易踩坑的细节——注释里特意标出来了:数组类型必须使用 Integer 包装类型,绝对不能写成基本类型 int[]。为什么?因为 Arrays.asList 方法接收的是泛型参数,如果你传入一个 int[],它会被当作一个单独的元素来处理,contains 方法就永远无法匹配到你想要的 id。换句话说,整个过滤逻辑会直接失效。这个细节若不留意,线上排查可能耗费大半天时间。

二、代码

下面就是完整的测试代码,可以直接运行。

@Test
public void listFilter() {
    List list = new ArrayList<>();
    list.add(new User(1, "a"));
    list.add(new User(2, "b"));
    list.add(new User(3, "c"));
    list.add(new User(4, "d"));
    list.add(new User(5, "e"));
    list.add(new User(6, "f"));
    list.add(new User(7, "g"));
    list.add(new User(8, "h"));
    list.add(new User(9, "i"));
    list.add(new User(10, "j"));

    // 注意:数组类型必须使用 Integer 才能正确判断,若用 int 会导致过滤失败
    Integer[] arr = new Integer[]{1,2,5,6,9};

    List filterList = list.stream()
        .filter(item -> Arrays.asList(arr).contains(item.getId()))
        .collect(Collectors.toList());

    filterList.stream().forEach(System.out::println);
}
来源:https://bbs.huaweicloud.com/blogs/478382
上一篇快速查找Excel表格数据对比差异的有效方法与技巧 下一篇AI助力研究报告的高效专业写作技巧与范文
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
RAG四标融合企业知识资产体系四库协同GEO优化实践
AI教程 · 2026-07-01

RAG四标融合企业知识资产体系四库协同GEO优化实践

生成式AI正在彻底改写信息检索的底层逻辑。传统SEO依赖关键词堆砌和外链建设的策略,在大模型的内容采信规则下已经基本失效。取而代之的,是生成式引擎优化(GEO)。它不再关注外链数量,而是重点衡量你的知识是否结构化、证据链是否坚实、信源是否可靠——这些维度才是RAG(检索增强生成)架构真正看重的核心指

一个普通上班人分享WorkBuddy使用心得与真实体验
AI教程 · 2026-07-01

一个普通上班人分享WorkBuddy使用心得与真实体验

前言 最近我开始使用WorkBuddy——这是腾讯推出的一款AI办公工作台。差不多用了一周时间,趁印象还新鲜,把真实的使用感受记录下来,给还在犹豫的朋友做个参考。不吹不黑,只说实际体验。 初印象:不只是聊天机器人 之前用过不少AI工具,大多数就是个对话框,你问它答,答完就结束了。WorkBuddy不

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录
AI教程 · 2026-07-01

AI幻觉变真功能实战教程:App Inventor 2视频录制拓展一周开发实录

先讲一个颇具戏剧性的开端。 这件事的开端颇显荒诞——有用户前来咨询,称AI Pro版的介绍中提到我们有一款“视频录制拓展”。团队全体成员都感到困惑,翻遍产品列表,发现根本不存在该组件。AI那种“一本正经胡说八道”的能力,这次确实让我们陷入尴尬。 按常理,此事到此便可结束——一句“抱歉,暂时没有这个拓

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同
AI教程 · 2026-07-01

别再混淆OLAP和SQL-on-Hadoop两者查询本质不同

OLAP和SQL-on-Hadoop虽都使用SQL查询数据,但本质不同。SQL-on-Hadoop负责海量数据批量计算与ETL,查询速度秒级至分钟级;OLAP通过预聚合实现毫秒级多维分析,适合BI报表。两者在数据平台分工协作,前者是后厨加工,后者是前台快速服务。

GEO优化深度解析:AI偏好FAQ还是长文内容?
AI教程 · 2026-07-01

GEO优化深度解析:AI偏好FAQ还是长文内容?

在GEO优化中,AI对内容形式无统一偏好:FAQ在简单查询中引用率41%,长文在复杂查询中达58%。内容应基于用户意图选择形式,FAQ适配简单事实类问题,长文建立主题权威,两者互补而非替代。