并发编程:并行反应式流:验证流(allMatch)

Java中anyMatch()、allMatch()、noneMatch()用法详解 2、allMatch() 如果取反,等效于 noneMatch() 所有元素不等于指定元素返回 true。2、noneMatch() 如果取反,等效于 allMatch() 所有元素等于指定元素返回 true。2、单元素取反,因为是单元素只有a,没有不等于 a 的元素,所以不成立返回 false。anyMatch():匹配到任何一个元素和指定的元素相等,返回 true。allMatch():匹配到全部元素和指定的元素相等,返回 true。输出:anyMatch()测试取反多元素结果:true。 阅读详情

目录

主要内容

一、主程序

二、辅助类


主要内容

  • allMatch:全部匹配
  • anyMatch:任一匹配
  • noneMatch:无一匹配

一、主程序

package xyz.jangle.thread.test.n6_9.match;

import java.util.List;

import xyz.jangle.thread.test.n6_2.create.Person;
import xyz.jangle.thread.test.n6_2.create.PersonGenerator;

/**
 * 6.9、验证流
 * allMatch:全部匹配
 * anyMatch:任一匹配
 * noneMatch:无一匹配
 * 
 * @author jangle
 * @email jangle@jangle.xyz
 * @time 2020年9月8日 下午9:01:58
 * 
 */
public class M {

	public static void main(String[] args) {
		List<Person> persons = PersonGenerator.generatePersonList(10);
		Integer max = persons.parallelStream().map(p -> p.getSalary()).max(Integer::compare).get();
		int min = persons.parallelStream().mapToInt(p -> p.getSalary()).min().getAsInt();
		System.out.println("Max:" + max + ",min:" + min);
		boolean condition;
		condition = persons.parallelStream().allMatch(p -> p.getSalary() > 0);
		System.out.println("所有的工资都大于0:" + condition);
		condition = persons.parallelStream().allMatch(p -> p.getSalary() > 10000);
		System.out.println("所有工资都大于10000:" + condition);
		condition = persons.parallelStream().allMatch(p -> p.getSalary() > 30000);
		System.out.println("所有工资都大于30000:" + condition);
		condition = persons.parallelStream().anyMatch(p -> p.getSalary() > 50000);
		System.out.println("存在工资大于50000的员工" + condition);
		condition = persons.parallelStream().noneMatch(p -> p.getSalary() > 100000);
		System.out.println("不存在工资大于100000的员工:" + condition);

		// 获取任一元素
		Person person = persons.parallelStream().findAny().get();
		System.out.println(person.getFirstName() + person.getLastName() + "," + person.getSalary());
		// 获取第一个元素
		person = persons.parallelStream().findFirst().get();
		System.out.println(person.getFirstName() + person.getLastName() + "," + person.getSalary());
		// 获取最低工资的员工
		person = persons.parallelStream().sorted((p1, p2) -> p1.getSalary() - p2.getSalary()).findFirst().get();
		System.out.println(person.getFirstName() + person.getLastName() + "," + person.getSalary());

	}

}

二、辅助类

https://blog.youkuaiyun.com/Bof_jangle/article/details/108350870

波士顿咨询最新发布《2025年全球支付报告:未来不稳定》:到2029 年,支付收入将预计达到 2.4 万亿美元 阅读详情

相关推荐

bcftools学习笔记(一)

欢迎关注"生信修炼手册"!本篇主要介绍index, view, query, sort, reheader这五个命令。1. indexindex命令用于对VCF文件建立索...

庐州月光的博客 6010

java containsany_Java,使用parallelStream()比较字符串。anyMatch()和contains()一个版本工作另一个版本不工作...

我的想法奏效了,但我怀疑这是一个糟糕的代码,我想知道为什么StackOverflow重做我没有按预期工作。我将在一个块中显示这两个代码位。只需切换哪个“if”行被注释和不被注释,就可以在工作版本和不工作版本之间切换。import java.util.Arrays;import java.util.List;public class Demo {public static void main(Str...

weixin_35515918的博客 942

HC32F460 FPU实战:从零开启硬件浮点加速

本文详细介绍了如何在HC32F460开发板上启用和优化FPU(浮点运算单元),以显著提升硬件浮点运算性能。从工程配置、关键代码修改到实战优化技巧,全面解析FPU加速的实现方法,并分享常见问题的解决方案,帮助开发者避免常见陷阱,充分发挥HC32F460的硬件潜力。

weixin_42620340的博客 348

关于Java的流操作(1)

本文主要讲讲List接口下的stream()和parallelStream()的以下几个常用方法: forEach() anyMatch()/allMatch() filter() takeWhile()/dropWhile() 一、forEach() 顾名思义,这个是用来遍历list的。用法如下: List<String> list = new LinkedList<>(); list.add("我是谁"); list.add("我在哪"); list.add("我要去哪");

qq_41334180的博客 312

代码复现——SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架

根据《SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs》(《SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架》)论文思路,简单复现代码,以实现SymAgent中的Agent-Planner和Agent-Executor模块。Agent-Planner利用大语言模型的归纳推理能力从知识图谱中提取符号规则,指导高效的问题分解。

qq_60040306的博客 1604

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

综上,大多数工作均基于CLIP预训练的图像编码器和文本编码器。GlIP为解决目标检测任务提供了先例,后续很多工作常与目前较为广泛使用的目标检测网络结构相结合,从而构建新的开放词汇目标检测器。如ViLD基于Mask R-CNN、RegionCLIP基于R-CNN、VLDet和BARON基于Faster R-CNN。更具有创新性的工作是Detic,提出了使用图像分类的数据集来对目标检测器的分类头进行训练。

yangsn0719的博客 4399

Java 多线程之并行流(parallelStream)

并行流是Java中Stream API的一部分,用于在多核处理器上并行执行流操作。在Java 8及更高版本中引入的Stream API提供了一种新的处理集合的方式,使得开发者能够更轻松地进行数据处理和操作。在使用Stream API时,可以将集合转换为流,然后进行各种操作,例如过滤、映射、排序等。在这个过程中,流可以是串行流(Sequential Stream)或并行流(Parallel Stream)。并行流通过使用多线程并行处理数据,充分利用多核处理器的优势,从而在某些情况下提高处理速度。

QIFU的专栏 1万+

基于 STM32 的校园电动车充电桩智能计费与过载保护系统设计与实现

本系统基于 STM32F103 主控,通过 HLW8032 电能计量芯片实现精准计费,配合继电器实现过载保护,RC522 模块完成刷卡身份识别,整体方案成本低、可靠性高,适合校园电动车集中充电场景的批量部署。软件采用状态机设计,逻辑清晰,可扩展多路充电口、远程监控等功能。

weixin_42300449的博客 56

Stream性能比较测试

测试环境:jdk1.8.0_60, guava-18.0.jar toMap public static void demo1() { int size = 50000; List list = new ArrayList<>(size); for (int i = 0; i < size; i++) {

ZERO 5161

论文阅读 AIED 2024 Coding with AI: How Are Tools Like ChatGPT Being Used by Students in Foundational Pro

该论文题为《Coding with AI: How Are Tools Like ChatGPT Being Used by Students in Foundational Programming Courses》,由美国犹他州立大学的 Aashish Ghimire 与 John Edwards 共同撰写,发表于人工智能与教育领域顶级会议。

CSPhD-winston的博客 307

EtherCAT主站IGH-- 49 -- 搭建xenomai系统及自己的IGH主站

以上就是搭建xenomai系统及自己的IGH主站的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 3154

Jdk8新特性(七):JDK8之集合框架(Stream、parallelStream、...)

7. JDK8之集合框架 7.1. 新增串行流(Stream) 7.1.1. Stream简介 Stream即“流”,通过将集合转换为这么一种叫做 “流”的元素队列,通过声明性⽅方式,能够对集合中的每个元素进行一系列并行或串行的流⽔线操作。 Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次,遍历过一次后即用尽了,就好比流水从面前流过,一去不复返。 而和迭代器又不...

HaleyTiger的博客 833

基于VLFM的中文指令视觉语言导航系统设计与实现

文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依

AI的内部世界的博客 205

流元素中验证条件

Java 9并发编程指南 目录 流元素中验证条件准备工作实现过程工作原理扩展学习更多关注 Stream类提供了一个有趣的功能,检查流的元素是否验证条件,此功能由返回布尔值的终点操作提供。 本节中,学习Stream类中哪些方法在流元素中验证条件,以及如何使用它们。 准备工作 本范例通过Eclipse开发工具实现。如果使用诸如NetBeans的开发工具,打开并创建一个新的Java项目。 实现过程 在本...

西木空间 257

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android16之解决报错:ckati: no such file or directory(二百四十九)

本篇目的:Android16之解决:ckati: no such file or directory。

Android系统攻城狮 740

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java 8 stream的详细用法

一、概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。 特点:         1 . 不是...

旅行者 30万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

避开ALV单元格编辑的那些坑:样式设置与真实可编辑性的区别详解

本文深入解析ABAP开发中ALV单元格编辑的核心机制,重点区分样式设置(mc_style_enabled)与实际可编辑性(fieldcat-edit)的本质区别。通过层级权限体系分析、常见误区案例和动态权限控制方案,帮助开发者正确实现条件化字段编辑,避免80%以上的ALV编辑问题。

weixin_33670786的博客 344

JDK1.8-Stream API使用

一、前言   在目前用到的JDK8的功能当中,毫无疑问Stream的使用是最多的,所以通过这篇文章来学习总结一下。   首先,Java8的Stream是对集合对象操作的API,它专注于对集合对象进行各种非常便利,高效的聚合操作或者大批量操作,从而减少代码的复杂度。借助于lambda表达式,极大的提高编程效率和程序可读性。并且Stream支持串行和并行两种模式,使我们无需编写太多代码,就可以很方便的写出高性能的并发程序。 二、Stream结构及构建 public interface ...

Esca的学习之路 1054

java 8 stream api_java8中的Stream API实战

根据以下两个list集合来演示Stream APIList list1 = new ArrayList<>();PayRecordBO payRecordBO1 = new PayRecordBO();payRecordBO1.setChannelNo("1");payRecordBO1.setAmount(new BigDecimal("0.11"));payRecordBO1.se...

weixin_35907638的博客 214

Java8新特性之Streams和Parallel Streams

一、Streams(流) java.util.Stream 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你就可以将多个操作依次串起来。Stream 的创建需要指定一个数据源,比如java.util.Collection 的子类,List 或者 Set, Map 不支持。Stream ...

谢小鱼的博客 1676

Java8新特性stream和parallelStream有什么区别

Java8新特性stream和parallelStream有什么区别

吴名氏的博客 7万+

Java1.8工作中最常用的14个Stream详细小示例,你还不会吗?

一:简介 java.util.Stream 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样就可以将多个操作依次串起来。Stream 的创建需要指定一个数据源,比如 java.util.Collection的子类,List或者Set, Map不支持。Stream的操作可以串行stream()执行或者并行parallelStream()执行。 二:Stream package java.util

m0_53223758的博客 413

java 流 api

info.parallelStream().filter(it -> counts.parallelStream().noneMatch(subIt -> { String s1 = subIt.getSceniccode(); if (s1 == null) { return false; ...

weixin_30670965的博客 135

java8--stream流API

生成数据流 使用Java8,Collection 接口有两个方法来生成流。 stream() -返回顺序流考虑集合作为其源。 parallelStream() - 返回并行数据流考虑集合作为其源   流/Stream是在JAVA8中引入的一个抽象,可以处理类似SQL语句声明数据 示例代码1: StreamTest.java package com.tingcream....

jasnet_u的博客 325

java nonematch_简洁方便的集合处理——Java 8 stream流

背景java 8已经发行好几年了,前段时间java 12也已经问世,但平时的工作中,很多项目的环境还停留在java1.7中。而且java8的很多新特性都是革命性的,比如各种集合的优化、lambda表达式等,所以我们还是要去了解java8的魅力。今天我们来学习java8的Stream,并不需要理论基础,直接可以上手去用。我接触stream的原因,是我要搞一个用户收入消费的数据分析。起初的统计筛选分组...

weixin_39564524的博客 1251

【Java】Java8中的Stream

一、Stream的理解 Stream是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等 在Java8中Stream API作为数据渠道,用于操作数组或者集合等数据源。流本身是不存储数据的,只是移动数据,在移动过程中可能会对数据进行过滤,排序或者其它操作,但是,大多数情况下,流操作本身不会修改数据源,比如,对流排序不会修改数据源的顺序。它只是会创建一个新的流,其中包含

sysu_lluozh 1474
上一篇: 并发编程:并行反应式流:排序流(sorted、unordered)
下一篇: 并发编程:并行反应式流:编程流(Flow.Subscriber)
博风
博客等级 码龄16年 442粉丝 357原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值