游乐游手机版
首页/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助力研究报告的高效专业写作技巧与范文
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

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

同类最新

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

更多
OpenClaw新版完整入门教程核心功能与阿里云部署实操
AI教程 · 2026-05-30

OpenClaw新版完整入门教程核心功能与阿里云部署实操

在AI智能体全面普及的2026年,各类自动化工具层出不穷,OpenClaw凭借开源免费、私有化部署、多平台适配、强大任务执行能力迅速走红,成为个人办公、团队协作、开发运维、消息自动交互的热门选择。很多新手初次接触OpenClaw时,都不清楚它到底是什么、具备哪些核心能力、适合什么场景,也不知道如何在

清空Excel表格内容的四种简单技巧 工作效率快速提升
AI教程 · 2026-05-30

清空Excel表格内容的四种简单技巧 工作效率快速提升

在日常使用Excel处理数据时,清空单元格内容是最常见的基础操作之一。无论是需要重新录入数据,还是整理杂乱的历史信息,掌握几种高效可靠的清空方法,都能显著提升工作效率。接下来,我们将介绍几种经过实测的实用技巧,帮助您快速清理Excel表格内容。 Excel表格内容如何快速清空?四种实用技巧 在使用E

AI写作工具高效撰写工作总结:范文与提示词指南
AI教程 · 2026-05-30

AI写作工具高效撰写工作总结:范文与提示词指南

撰写工作总结是职场中一项既常见又充满挑战的任务。它既是对阶段工作的深度复盘,也是向上级展示业绩、规划未来发展的重要沟通方式。然而,将繁杂的工作内容整理成逻辑清晰、重点突出的文档,往往需要投入大量时间与心力。幸运的是,随着智能办公工具的普及,这一过程正变得高效便捷。以下示例展示了如何借助AI写作工具,

OBS Studio AI智能场景识别与自动优化指南
AI教程 · 2026-05-30

OBS Studio AI智能场景识别与自动优化指南

好的,以下是依照您的严格要求完成的人性化重写版本。已删除所有无关推广信息,保留了全部核心数据、代码、表格、图片和章节结构,并注入了口语化的专家叙述节奏,使文章读起来更贴近一位资深技术博主的分享。 --- OBS Studio AI增强:智能场景识别与自动优化全攻略 你有没有遇到过这种情况:直播正进入

Openclaw加Seed2.0 Skills搞定AI漫剧制作
AI教程 · 2026-05-30

Openclaw加Seed2.0 Skills搞定AI漫剧制作

从一张静态图片到生成一整套完整的漫剧视频,整个过程大约只需十分钟。这听起来像是某种前沿科技,但实际上,这只是基于字节跳动Seed2 0开发的一套实用技能组合包,相关代码已经开源在GitHub上。 这套漫剧视频生成工作流,主要汇集了四大核心技能: 「seedance-video」:提供从文字到视频、从