使用Java Stream API分割数据流并获取两个不同的集合

使用java stream api分割数据流并获取两个不同的集合

本文将介绍如何使用Java Stream API处理数据流,并根据特定条件将其分割成两个不同的集合。通过partitioningBy方法,可以高效地将数据流划分为满足条件和不满足条件的两部分,分别存储到不同的列表中,避免了传统循环的繁琐。

使用 partitioningBy 方法分割数据流

Java Stream API 提供了 partitioningBy 方法,可以根据给定的 Predicate 函数将数据流分割成两个 List,一个 List 包含所有满足 Predicate 条件的元素,另一个 List 包含所有不满足 Predicate 条件的元素。 partitioningBy 方法返回一个 Map<Boolean, List>,其中 Key 为 Boolean 类型,True 对应满足条件的 List,False 对应不满足条件的 List。

示例代码

立即学习“Java免费学习笔记(深入)”;

假设我们有一个 ID 列表 myIdList 和一个 Map myObjectMap,其中 ID 映射到对应的 Object。 我们需要遍历 ID 列表,如果 ID 存在于 Map 中,则将对应的 Object 添加到一个 List 中,否则将 ID 添加到另一个 List 中。

import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class StreamPartitioning {    public static void main(String[] args) {        List myIdList = Arrays.asList("a", "b", "c");        Map myObjectMap = new HashMap();        myObjectMap.put("b", "B");        Map<Boolean, List> partitioned = myIdList.stream()                .collect(Collectors.partitioningBy(myObjectMap::containsKey));        List objectList = partitioned.get(true).stream()                .map(myObjectMap::get)                .collect(Collectors.toList());        List missingObjIds = partitioned.get(false);        System.out.println("objectList=" + objectList);        System.out.println("missingObjIds=" + missingObjIds);    }}

代码解释

数据准备:

Topaz Video AI Topaz Video AI

一款工业级别的视频增强软件

Topaz Video AI 388 查看详情 Topaz Video AI myIdList: 包含需要处理的 ID 列表。myObjectMap: 包含 ID 到 Object 的映射关系。

使用 partitioningBy 分割数据流:

myIdList.stream(): 创建一个包含 myIdList 中所有元素的 Stream。collect(Collectors.partitioningBy(myObjectMap::containsKey)): 使用 partitioningBy 方法,以 myObjectMap::containsKey 作为 Predicate 函数分割 Stream。myObjectMap::containsKey 是一个方法引用,它检查 myObjectMap 是否包含给定的 ID。partitioned: 结果是一个 Map<Boolean, List>,Key 为 Boolean 类型,True 对应 myObjectMap 中存在的 ID 列表,False 对应 myObjectMap 中不存在的 ID 列表。

获取 Object 列表和缺失 ID 列表:

partitioned.get(true).stream(): 获取所有在 myObjectMap 中存在的 ID 列表的 Stream。map(myObjectMap::get): 将 ID 映射到对应的 Object。collect(Collectors.toList()): 将 Object 收集到 objectList 中。partitioned.get(false): 获取所有在 myObjectMap 中不存在的 ID 列表,即缺失的 ID 列表,存储到 missingObjIds 中。

输出结果:

打印 objectList 和 missingObjIds 的内容。

运行结果

objectList=[B]missingObjIds=[a, c]

注意事项

partitioningBy 方法将数据流分割成两个 List,因此会遍历数据流一次。partitioningBy 方法返回的 Map 中的 Value 是 List 类型,因此可以方便地对分割后的数据进行后续处理。如果 myObjectMap 中不存在对应的 Object,map(myObjectMap::get) 会返回 null。 在实际应用中,需要根据具体情况处理 null 值。

总结

使用 Java Stream API 的 partitioningBy 方法可以方便地将数据流分割成两个不同的集合,提高了代码的可读性和简洁性。 该方法适用于需要根据条件将数据进行分类处理的场景。

以上就是使用Java Stream API分割数据流并获取两个不同的集合的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/754055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月25日 21:58:53
下一篇 2025年11月25日 22:00:52

相关推荐

  • 什么是山寨币季(Altseason)?2025年什么时候开始?

    目录 什么是山寨币季(Altseason)?2025年什么时候开始?什么是山寨币季(Altseason)?什么是山寨币(Altcoins)?Altseason 开始的原因: 主要因素2025 年牛市中的Altcoin 季节何时开始?过去Altcoin 季节的历史1. 2017-20182. 2020…

    2025年12月8日 好文分享
    000
  • 以太坊基金会的生态推进,能否成为ETH新的增长引擎

    以太坊基金会于 7 月 10 日发布了「生态系统发展的未来」战略文件,标志着基金会启动了一系列深度架构调整,旨在应对长期存在的项目支持、生态运营和资金管理方面的挑战。 在新的愿景声明中,基金会明确了两个核心总体目标:一是扩大直接或间接使用并受益于以太坊底层价值观的用户数量;二是增强以太坊技术与社会基…

    2025年12月8日
    000
  • 什么是Giants Protocol($G币)?怎么样?如何参与G代币空投?

    目录 什么是Giants ProtocolGiants Protocol(G代币)最新动态G 代币经济学Giants Protocol的技术和运营模式基于比特币的基础设施Giants Protocol的核心功能什么是Giants PlanetBGPS 独特的游戏体验路线图 giants protoc…

    2025年12月8日 好文分享
    000
  • 稳定币与比特币有什么区别?为什么它更“稳定”?

    稳定币与比特币有什么区别?为什么它更“稳定”? 稳定币与比特币同属加密资产,但两者在价值波动、设计机制、应用场景等方面存在明显差异。了解它们的根本区别,有助于用户在不同市场情境中做出更合理的投资与使用决策。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网直达: 安卓安装包下载…

    2025年12月8日
    000
  • USDT和USDC哪个好?一文对比市面上主流稳定币

    USDT和USDC哪个好?一文对比市面上主流稳定币 在加密货币市场中,稳定币承担着交易媒介与价值锚定的重要角色,其中以usdt(tether)与usdc(usd coin)最为常见。这两种稳定币均锚定美元,1枚等于1美元,但它们在稳定性、透明度、合规性、链上活跃度等方面却有所不同。 【权威推荐】20…

    2025年12月8日
    000
  • Juventus Fan Token 是什么?JUV 代币价格预测2025-2035年

    juventus fan token(juv)是由意大利顶级足球俱乐部尤文图斯与区块链平台 socios 联合推出的粉丝代币,基于 chiliz chain(以太坊侧链)发行。该代币为持有者提供参与俱乐部事务决策的机会,例如投票选择球衣款式、训练场标语或官方赞助商提名,并通过智能合约确保投票结果的执…

    2025年12月8日
    000
  • PEPE、SHIB与模因币:加密宇宙中的一场疯狂之旅

    pepe和shib模因币正在经历显著的复苏,潜在的突破与新兴竞争者的加入正掀起市场波动。究竟是什么在推动这一波热潮? 模因币市场正处于高热状态,投资者的目光纷纷投向PEPE和SHIB。这些代币早已超越了最初的网络玩笑概念,逐渐演变为加密货币领域的重要角色。从技术突破到新晋挑战者,以下是关于当前模因币…

    2025年12月8日
    000
  • 比特币突破历史高点:监管透明与通往12万美元之路

    比特币在监管顺风中再创新高,监管透明是持续增长的关键吗?让我们一探究竟! 比特币突破历史新高:监管透明与通往12万美元之路 比特币正势如破竹地冲破历史高点,令加密货币爱好者兴奋不已。美国的监管清晰度和机构投资者的兴趣正在推波助澜。我们来深入解析! 比特币牛市:新时代的开启 比特币最近飙升至119,3…

    2025年12月8日
    000
  • 最稳定的稳定币是哪些_稳定币稳定性最好的是哪些

    最稳定的稳定币是哪些?稳定性最强的稳定币推荐 在加密资产市场中,稳定币扮演着“锚定资产”的关键角色,用于对抗行情波动、保持资金流通与账户价值的相对稳定。选择稳定性强的稳定币,对于日常交易、资产保值及参与defi生态都至关重要。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网直…

    2025年12月8日
    000
  • 2025最热门的稳定币是哪些_热门稳定币项目有哪些

    2025最热门的稳定币是哪些?热门稳定币项目一览 随着加密市场结构逐步成熟,稳定币作为流动性载体和资产锚定工具,已成为数字金融生态的核心组成部分。2025年,多个稳定币项目因其技术机制、合规发展和defi适配能力脱颖而出。了解热门稳定币项目有助于把握市场趋势、优化资产配置。 【权威推荐】2025主流…

    2025年12月8日
    000
  • 稳定币前景如何_2025稳定币会暴涨吗

    稳定币前景如何?2025年稳定币会暴涨吗? 稳定币作为加密世界的“桥梁资产”,在多个场景中扮演关键角色。它们结合了法币的稳定属性与区块链的高效传输特性,在全球支付、资产避险和defi金融等领域有着广泛应用。越来越多的金融机构和合规平台正在引入稳定币机制,推动其在现实金融生态中拓展使用边界。 【权威推…

    2025年12月8日
    000
  • Ruvi AI:经过审计的代币,准备成为百倍明星项目

    ruvi ai 是否会成为下一个加密货币热点?凭借其已审计的代币、实际应用场景及强劲的预售表现,这一项目或许蕴藏着高达100倍回报的潜力。 Ruvi AI:经过安全审计的代币,或成百倍回报候选者 在加密货币市场中,投资者始终在寻找下一个爆发点,而 Ruvi AI(RUVI)正逐渐成为焦点。该项目以清…

    2025年12月8日
    000
  • 加密货币、机构兴趣、重新获得动力:有什么热议?

    比特币etf资金流入刷新历史纪录,link、dot和aave等主流山寨币也展现出不俗潜力。机构投资者的兴趣是否正在推动新一轮加密货币热潮?让我们一探究竟! 加密市场重拾动能:机构热情升温 随着机构兴趣的不断上升以及期货市场的活跃表现,加密货币正重新获得市场关注。我们是否正站在下一轮牛市的起点?一起来…

    2025年12月8日
    000
  • 佩佩、加密货币与AI社区:超越迷因

    探索如 pepe 一般的迷因币的演变、ai 驱动型加密项目的兴起,以及社区在数字金融领域中所扮演的重要角色。 朋友们,欢迎来到加密世界的奇妙旅程!让我们一起深入了解迷因币(meme coins)、人工智能(AI)以及推动它们发展的社区力量。这将是一段充满惊喜与变化的旅途,请系好安全带,准备出发! P…

    2025年12月8日
    000
  • 2025最新稳定币种类大全

    2025最新稳定币种类大全 稳定币作为加密货币市场中重要的价值锚定工具,其种类在2025年进一步丰富,逐渐覆盖多种用途场景,包括支付、储值、跨境结算和defi抵押等。稳定币通常锚定法币、商品或其他加密资产,以实现价格相对稳定。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网直…

    2025年12月8日
    000
  • 稳定币值得购买嘛_2025稳定币市场行情怎么样

    稳定币值得购买吗?2025年稳定币市场行情解析 稳定币因其价格锚定机制,在数字资产投资中起到重要的避险与交易媒介作用。它们不像比特币或以太坊那样剧烈波动,而是在激烈市场中保持价格稳定,从而被广泛用于资产保值、转账支付和defi参与等场景。 【权威推荐】2025主流数字货币交易平台合集 Binance…

    2025年12月8日
    000
  • 稳定币是什么_一文介绍稳定币来源、行情如何交易

    %ignore_a_1%是什么?一文介绍稳定币来源、行情与交易方式 稳定币是加密货币市场中专门用于对抗价格波动的特殊数字资产。它的核心特点是锚定某种相对稳定的资产,如法币(美元、欧元)、贵金属或其他加密资产,从而实现币值的稳定。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网…

    2025年12月8日
    000
  • 稳定币是法定货币吗_稳定币可以直接交易吗

    稳定币是法定货币吗?稳定币可以直接交易吗? 稳定币(stablecoin)是一种价格相对稳定的数字资产,通常与某种法定货币(如美元)或资产(如黄金)挂钩。虽然它的目标是保持币值稳定,但稳定币本质上不是法定货币,而是由私营公司或去中心化协议发行的加密资产。 【权威推荐】2025主流数字货币交易平台合集…

    2025年12月8日
    000
  • 一文教你如何辨别稳定币_稳定币小白知识指南

    一文教你如何辨别稳定币:稳定币小白知识指南 稳定币是加密货币市场中承担“数字现金”角色的资产,它们保持价格相对稳定,广泛应用于交易、储值、defi、支付等场景。对初学者而言,学会辨别稳定币类型和风险属性,是进入币圈理财的第一步。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网…

    2025年12月8日
    000
  • 2025年的区块链公关:通过战略传播应对行业发展

    探索2025年区块链公关的核心地位:揭秘引领行业前行与推动大众接纳的领先机构及策略 步入2025年,区块链领域的公共关系已从附加选项转变为不可或缺的战略工具。随着数字资产生态日趋成熟,公众认知在项目成败中扮演着关键角色。本文将深入剖析战略性公关如何驱动行业发展,并展望未来趋势。 区块链公关在2025…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信