并发编程:并行反应式流:验证流(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

工业缺陷检测深度学习方法综述 异常:点异常、 上下文异常和集群异常。点异常:又称为离群值 (outliers)[9], 描述数值上偏离正 常样本的独立数据。与异常相近的概念还包括新颖点(novelty)和分布外数据。上下文异常:同样描述数据点,其数值属于正常范围,但不符合局部上下文规律。集群异常:描述一系列相关数据的集合,集合中的每一个实例的数值在单独考察时都处于正常值域,但集 合整体的相关性特征不服从正常模式。一般的图像异常检测往往仅需区分正常与异常样本,而工业缺陷检测更关注于检测 图像中的异常像素. 阅读详情

相关推荐

Cadence 16.6与17.4双版本共存避坑指南:从安装顺序到环境变量配置

本文是一份详细的Cadence 16.6与17.4双版本共存实战指南。针对硬件工程师和PCB设计者同时处理新旧项目的需求,文章深入剖析了版本冲突根源,并提供了从安装顺序、环境隔离到故障排查的完整解决方案。核心在于通过环境变量精细化管理与脚本控制,实现两个版本的稳定共存与无缝切换,有效解决了文件关联混乱、交互布局失效等常见问题。

html8的博客 972

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

PID参数自整定实战解析:从继电反馈到智能调节的完整实现

本文深入解析PID参数自整定的实战应用,从继电反馈原理到智能调节算法的完整实现。通过详细讲解振荡波形特征提取、参数计算的工程化改进及工业场景调试技巧,帮助工程师快速掌握PID自整定技术,提升控制系统性能。特别针对嵌入式系统优化和噪声环境下的稳定策略提供了实用解决方案。

weixin_28731223的博客 458

关于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

OpenClaw 完整命令文档(2026.3.13 最新版)

本文档为OpenClaw 2026.3.13通用版使用指南,包含核心命令大全。主要内容包括:1)基础安装/升级/卸载命令;2)ClawHub扩展安装命令(支持飞书/钉钉/企微等平台连接);3)Skills技能安装命令(实现聊天/搜索/记忆等功能);4)飞书机器人授权与配对命令;5)启动运行与配置检查命令;6)工作区与记忆管理命令;7)插件安全设置命令;8)调试日志命令;9)飞书机器人一键部署简化流程。文档特别强调飞书机器人部署需feishu扩展+对应技能+用户授权的完整配置,所有命令均需在终端执行,安装后需

MKliudan的专栏 1288

Qt跨平台CAN通信实战:Vector、PCAN与周立功设备统一接口设计

本文针对Qt开发中常见的多品牌CAN设备兼容难题,提出了一套统一的跨平台CAN通信接口设计方案。通过抽象层封装,实现了对Vector、PCAN和周立功设备的统一操作,上层业务代码无需修改即可在不同硬件间切换,有效解决了驱动API差异、环境配置复杂和维护成本高等痛点,显著提升了代码复用率和开发效率。

weixin_29161785的博客 329

Java 多线程之并行流(parallelStream)

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

QIFU的专栏 1万+

华为OD机试双机位C卷-部门人力分配 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【部门人力分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 部门人力分配。

qq_45776114的博客 1872

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

代谢组数据分析(二十一):通过MetaboAnalystR标准化构建sPLSDA预测模型

本文介绍了如何使用R语言中的MetaboAnalystR包和mixOmics包进行代谢组学数据的标准化和sPLSDA分析。MetaboAnalystR包用于数据预处理,包括数据初始化、清洗、补足、过滤和标准化等步骤,以确保数据质量。mixOmics包则用于sPLSDA分析,通过Lasso惩罚进行变量选择,并建立分类模型。文章详细说明了安装和加载相关R包的步骤,并提供了数据导入和预处理的代码示例。最后,强调了数据预处理的重要性,以确保后续分析的准确性和可靠性。

专注生信领域 2426

【unity实战】使用unity的Navigation+LineRenderer实现一个3D人物寻路提前指示预测移动轨迹的效果,并可以适配不同的地形

本文介绍了在Unity中使用Navigation导航系统和LineRenderer实现3D人物寻路轨迹预测效果的方法。通过NavMesh.CalculatePath计算路径点,结合Physics.Raycast进行地面点投射,将路径点赋予LineRenderer渲染出移动轨迹。关键点包括:1)利用NavMesh.CalculatePath计算两点间可行走路径;2)通过射线检测获取地面点提高路径适配性;3)使用协程定期更新路径绘制。文章还提供了完整代码实现,并说明需要将地面图层设置为Ground并进行导航网格

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 456

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

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

HaleyTiger的博客 833

甲基化生物信息学分析及批次效应校正全流程

本文系统阐述了DNA甲基化数据分析中的批次效应问题及解决方案。甲基化数据(β值和M值)对实验批次差异高度敏感,可能导致假阳性结果。文章详细介绍了批次效应检测方法(PCA可视化、BEclear定量评分)和校正流程,包括数据预处理、参数化(ComBat-met)与非参数化(BEclear)校正方法,并提供了完整的R代码实现。重点解决了β值有界分布与统计模型假设冲突的问题,为甲基化研究的可靠性提供技术保障。

huanghm88的专栏 105

流元素中验证条件

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

西木空间 257

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

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

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

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

Android系统攻城狮 740

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

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

Java 8 stream的详细用法

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

旅行者 30万+

避开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

stream().anyMatch

List<Integer> list =new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.stream().anyMatch(sb -> { System.out.println(sb); return sb > 2;//打印了123 //return tru...

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值