今日学习 -2025/3/25

news/2025/3/25 22:42:59/文章来源:https://www.cnblogs.com/XYu1230/p/18792467

StringUtils.join()

函数原型:
public static String join(Object[] array, String separator)
public static String join(Iterable<?> iterable, String separator)

StringUtils.join() 是 Apache Commons Lang 库中的一个实用方法,它的主要作用是将数组、集合等可迭代对象中的元素连接成一个字符串。相较于 Java 标准库中的 String.join() 方法,StringUtils.join() 提供了更多的功能和灵活性,比如支持对 null 值的处理等。
StringUtils.join(nameList, ",")
作用 : 将nameList集合中的数据 提取出来 拼接成字符串 , 中间用','分隔
会用到的地点: 将集合转换为字符串的场景

stream流

Stream 流是 Java 8 引入的一个新的抽象概念,它允许你以声明式的方式处理集合中的元素。借助 Stream 流,你能够对集合元素进行各种操作,像过滤、映射、排序、聚合等,从而编写出更简洁、更具可读性的代码。
Stream 流并非数据结构,也不存储数据,它只是对数据源(如集合、数组等)进行一系列操作的抽象。流操作可以分为中间操作和终端操作。中间操作会返回一个新的流,允许你链式调用多个中间操作;终端操作会触发流的处理并产生一个结果。
今日用到的
List<String> nameList = ordersSales.stream().map(GoodsSalesDTO::getName).collect(Collectors.toList());
解析 : ordersSales是一个对象为GoodsSalesDTO的集合 , 使用map()提取出其中的name 属性 最后使用collect(Collectors.toList()) 转换为字符串集合
Integer totalOrderCount = orderCountList.stream().reduce(Integer::sum).get();
解析: reduce是聚合函数通过reduce(Integer::sum) 操作可以求出集合中所有值的和 , 相当于 reduce((a,b) -> a + b)

总结 : 可以简化开发 , 让代码更加优雅 , 可读性不详 , 但b格高

关于stream流 其他常用的操作:

中间操作
中间操作会返回一个新的流,允许你对元素进行进一步的处理。常见的中间操作有:
filter:过滤元素

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class FilterExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);List<Integer> evenNumbers = numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());System.out.println(evenNumbers); }
}

map:映射元素

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class MapExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3);List<Integer> squaredNumbers = numbers.stream().map(n -> n * n).collect(Collectors.toList());System.out.println(squaredNumbers); }
}

sorted:排序元素

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class SortedExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(3, 1, 2);List<Integer> sortedNumbers = numbers.stream().sorted().collect(Collectors.toList());System.out.println(sortedNumbers); }
}

终端操作
终端操作会触发流的处理并产生一个结果。常见的终端操作有:
forEach:遍历元素

import java.util.Arrays;
import java.util.List;public class ForEachExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3);numbers.stream().forEach(System.out::println);}
}

collect:收集元素到集合

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class CollectExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3);List<Integer> squaredNumbers = numbers.stream().map(n -> n * n).collect(Collectors.toList());System.out.println(squaredNumbers); }
}

reduce:聚合元素

import java.util.Arrays;
import java.util.List;public class ReduceExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3);int sum = numbers.stream().reduce(0, (a, b) -> a + b);System.out.println(sum); }
}

并行流
并行流允许在多个线程上并行处理元素,从而提高处理大数据集的性能。可以通过 parallelStream() 方法创建并行流。

import java.util.Arrays;
import java.util.List;public class ParallelStreamExample {public static void main(String[] args) {List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);int sum = numbers.parallelStream().reduce(0, (a, b) -> a + b);System.out.println(sum); }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905700.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux主机新增硬盘与挂载

近期对工作站主机新增了硬盘,网上搜罗了一些教程,整合了一下,感谢相关博主的知识分享,本篇只是整合参考:https://zhuanlan.zhihu.com/p/117651379 https://cn.linux-console.net/?p=10440新增硬盘处理 新增硬盘后,在linux系统下输入 fdisk -l 命令查看当前磁盘信息可以看…

如何优化SQL查询以提高数据库性能?

你正在自助餐厅,所有的食物看起来都很美味。但你不是拿一个盘子,只取你需要的,而是开始从各个角落堆满食物,弄得一团糟,速度也慢了下来。结果是什么?你拿的东西很多并且效率低下。 这就像没有优化的SQL查询!它们加载了不必要的数据,拖慢了整个系统的速度,并在数据库中…

HTB Season7 Dog

一、信息收集 拿到ip,先测试一下连通性连通性正常,使用nmap扫描一下ip,输入nmap -sV -sC -A 10.10.11.58 -Pn 扫描发现http页面,并且发现了网页使用了BackDropCMS在hosts内添加添加页面,访问网页发现一个登录框,尝试一下sql注入无果,只能另寻出路此时dirsearch扫描发现了…

20242802 2023-2024-2《网络攻防实践》第四周作业

20242802 2023-2024-2 《网络攻防实践》第四周作业 1.实验内容与知识点整理TCP/IP参考模型 在TCP/IP参考模型中,去掉了OSI参考模型中的会话层和表示层(这两层的功能被合并到应用层实现)。同时将OSI参考模型中的数据链路层和物理层合并为主机到网络层,所以在TCP/IP参考模型中…

浅谈--Cache Design Pattern

🤔听说你用过Redis、Caffeine,那我问你你了解Cache Design Pattern吗?Look at my eyes。 今天就来聊聊Cache Design Pattern。Cache Design Pattern是缓存设计模式,是用于优化系统性能、减少资源消耗和提升响应速度的软件架构策略。主要有六大核心缓存模式。 Cache-Aside …

七、神经网络-非线性激活

小土堆视频:https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.788.videopod.episodes&vd_source=6cb513d59bf1f73f86d4225e9803d47b&p=19非线性变换的主要目的:引入非线性能力,使模型能够学习复杂的映射关系。如果没有非线性激活,神经网络本质上相当…

日报2025325

今日继续学习springboot,已实现springboot+vue的前后端跨域连接关键是配置CorsConfig以及Requestjs

15. SD卡

一、SD卡简介SD 卡的规范由 SD 卡协会明确,可以访问 https://www.sdcard.org 查阅更多标准。SD 卡主要有 SD、Mini SD 和 microSD(原名 TF 卡,2004 年正式更名为 Micro SD Card)三种类型,Mini SD 已经被 microSD 取代。上述表格的 “脚位数”,对应于实卡上的 “金手指” …

20242321 2024-2025-2 《Python程序设计》实验一报告(修改版)

20242321 2024-2025-2 《Python程序设计》实验一报告(修改版) 课程:《Python程序设计》 班级: 2423 姓名:汤泽鹏 学号:20242321 实验教师:王志强 实验日期:2025年3月25日 必修/选修: 公选课 一、实验内容熟悉Python开发环境; 练习Python运行、调试技能;(编写书中的…

LCD1602 单片机上代码的实现和代码结构的分析

简单的实现了LCD1602显示屏的显示,主要关注代码结构的学习(对标内核代码驱动实现,代码的解耦)1、单片机引脚和设备引脚之间的通信 LCD1602使用并口与单片机进行通信,主要包括D0-D7 8个数据线和3根控制线(RS(指令和数据寄存器的区分),R/W(读写控制引脚),E(开始读写引脚,理…

矿用AI人员入侵本安型防爆摄像头

AI智能防爆摄像机可在诸如煤矿、井下等具有易燃易爆气体的高危环境中。矿井煤矿传输机,为了监测防止矿工误闯入,在运输线上方安装防爆AI智能预警摄像头,实时检测矿工闯入运输线识别报警,可以起到保护设备和矿工的安全。防爆AI智能预警摄像头采用煤矿用级别防爆外壳,摄像机…

openGl4

----向量章节---原文:如果一个向量的齐次坐标是0,这个坐标就是方向向量(Direction Vector),因为w坐标是0,这个向量就不能位移这段提供了一个区分方向向量和点坐标的方式,而且是逻辑上区分的。可以平移=点=w非0,w非0=可以平移=点原文提到了万向节死锁。是一种旋转导致轴重…