java8 常用code

文章目录

  • 前言
  • 一、lambda
    • 1. 排序
      • 1.1 按照对象属性排序:
      • 1.2 字符串List排序:
      • 1.3 数据库排序jpa
    • 2. 聚合
      • 2.1 基本聚合(返回对象list)
      • 2.2 多字段组合聚合(直接返回对象list数量)
  • 二、基础语法
    • 2.1 List
      • 2.1.1 数组初始化赋值
      • 2.1.2. 逗号分割字符串、list互转
      • 2.1.3 去重
    • 2.2. Json解析
      • 2.2.1 Gson
      • 2.2.2 Fastjson
    • 2.3. LocalDateTime
      • 2.3.1 String->LocalDateTime
      • 2.3.2 Date->LocalDateTime
    • 2.4. Optional
      • 2.4.1 map/flatMap
      • 2.4.2 ifPresent
      • 2.4.3 filter
    • 2.5. EsayExcel
      • 2.5.1 导出示例
      • 2.5.2 相关注解
  • 三、 Linux命令
    • 3.1 磁盘爆满占用情况
    • 3.2 nacos单机启动命令
    • 3.3 防火墙状态查询及操作
    • 3.4 清理缓存(buff/cache)


前言

常用语法汇总

一、lambda

1. 排序

1.1 按照对象属性排序:

List<AccidentEduSLResp> respList =list.stream().sorted(Comparator.comparing(AccidentEduSLResp::getOrgUnit)).collect(Collectors.toList());
district.sort(Comparator.comparing(AccidentEduSLResp::getOrgUnit));  //性能优

1.2 字符串List排序:

List<String> sortedDistrict = district.stream().sorted().collect(Collectors.toList());

1.3 数据库排序jpa

dao.findAll(spec, Sort.by(Sort.Order.desc(ExpertConstants.UPDATE_TIME), Sort.Order.asc(ExpertConstants.EXAMINE_STATUS)));

2. 聚合

2.1 基本聚合(返回对象list)

Map<String, List<AccidentSupervisePO>> collect = cityList.stream().collect(Collectors.groupingBy(s -> s.getDistrictCode()));

2.2 多字段组合聚合(直接返回对象list数量)

Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(o -> o.getDistrictCode() + "_" + o.getOrgUnit(), Collectors.counting()));

二、基础语法

2.1 List

2.1.1 数组初始化赋值

Arrays.asList 不允许add remove操作 UnsupportedOperationException

public static final List CITY_ARR = Arrays.asList("230100","230200","230300","230400","230500","230600");

需要add等操作需要以下写法支持

List<String> list = new ArrayList<>(Arrays.asList(arr));

2.1.2. 逗号分割字符串、list互转

List 转字符串:

Joiner.on(",").join(list)

字符串转List:

//-> 引入guava-28.2-jre.jar//-> CommonConstants常量类定义
public static final Splitter SPLITTER_COMMA = Splitter.on(",").omitEmptyStrings().trimResults();
//需要判断字符串是否为空
List<String> list = CommonConstants.SPLITTER_COMMA.splitToList(a.getDistrictCode());

2.1.3 去重

用hashset去重list 性能优

List<String> testListDistinctResult = new ArrayList<>(new HashSet(testList));

2.2. Json解析

2.2.1 Gson

Book b = new Book("书名1","简介1");
//使用gson将对象转为json字符串
String json = new Gson().toJson(b);
System.out.println(json);//使用gson将json字符转转为对象(第一个参数为json字符串,第二个参数为要转为的类)
Book b2 = new Gson().fromJson("{\\"name\\":\\"书名1\\",\\"info\\":\\"简介1\\"}",Book.class);

2.2.2 Fastjson

Book b = new Book("书名2","简介2");
//使用fastjson将对象转为json字符串
String json= JSON.toJSONString(b);
System.out.println(json);//使用fastjson将json字符转转为对象(第一个参数为json字符串,第二个参数为要转为的类)
Book b2 = JSON.parseObject("{\\"name\\":\\"书名1\\",\\"info\\":\\"简介1\\"}", Book.class);

2.3. LocalDateTime

2.3.1 String->LocalDateTime

//1.具有转换功能的对象
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//2.要转换的对象	
LocalDateTime time = LocalDateTime.now();//3.发动功能
String localTime = df.format(time);
System.out.println("LocalDateTime转成String类型的时间:"+localTime);//3.LocalDate发动,将字符串转换成  df格式的LocalDateTime对象,的功能
LocalDateTime LocalTime = LocalDateTime.parse(strLocalTime,df)
System.out.println("String类型的时间转成LocalDateTime:"+LocalTime);

2.3.2 Date->LocalDateTime

//Date转LocalDateTime 
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
System.out.println("Date = " + date);
System.out.println("LocalDateTime = " + localDateTime);//LocalDateTime转Date 
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.from(zdt.toInstant());
System.out.println("LocalDateTime = " + localDateTime);
System.out.println("Date = " + date);

2.4. Optional

2.4.1 map/flatMap

● map适用于基础数据类型
● flatMap适用于对象类型
user不为空的时候取address address为空取city city为空异常

Optional.ofNullable(user).map(u-> u.getAddress()).map(a->a.getCity()).orElseThrow(()->new Exception("错误"));

2.4.2 ifPresent

user不为空时dosomething

Optional.ofNullable(user)
.ifPresent(u->{dosomething(u);
});

2.4.3 filter

如果user的name的是zhangsan的,则返回当前对象。否则返回构造的user对象。

Optional.ofNullable(user)
.filter(u->"zhangsan".equals(u.getName()))
.orElseGet(()-> {User user1 = new User();user1.setName("zhangsan");return user1;
});

2.5. EsayExcel

2.5.1 导出示例

response.setContentType("application/octet-stream");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyExcel没有关系
String fileName = URLEncoder.encode("专家报销汇总" + DateUtil.localDateToString(LocalDate.now()), "UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
// 前端需要FileName头否则会会有问题
response.setHeader("FileName", fileName + ".xlsx");
response.setHeader("Access-Control-Expose-Headers", "FileName");
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
HorizontalCellStyleStrategy horizontalCellStyleStrategy =
new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
EasyExcel//将数据映射到DownloadDTO实体类并响应到浏览器
.write(response.getOutputStream(), ExpertAndCostInfoOutDTO.class)
//07的excel版本,节省内存
.excelType(ExcelTypeEnum.XLSX)
//是否自动关闭输入流
.autoCloseStream(Boolean.TRUE)
.registerWriteHandler(horizontalCellStyleStrategy)
.sheet("专家报销汇总").doWrite(findExpertAndCostGatherList(dto).getExpertList());

2.5.2 相关注解

//不映射excel
@ExcelIgnore    //列宽 class上控制全部字段  属性上控制该属性字段
@ColumnWidth(40)  //2.1.4 表头名称及排序   
//@ExcelProperty(order = 2)  2.2.7 排序写法 index被兼容
@ExcelProperty(value = "任务内容", index = 1)

三、 Linux命令

3.1 磁盘爆满占用情况

df -h
du -h --max-depth=1

3.2 nacos单机启动命令

sh startup.sh -m standalone

3.3 防火墙状态查询及操作

systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld

3.4 清理缓存(buff/cache)

清除前后使用 free -h 查看效果

free -h
sysctl -w vm.drop_caches=3
free -h

在这里插入图片描述

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

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

相关文章

Java对象转Map

在和外部系统对接时&#xff0c;对方系统提供的SDK方法入参全是Map&#xff0c;没办法&#xff0c;只能想办法把对象转成Map。这里&#xff0c;借助了hutool的工具类&#xff0c;可以方便的通过反射获取对象的属性。引入hutool的maven配置&#xff1a; <dependency><g…

Flink 使用场景

Apache Flink 功能强大&#xff0c;支持开发和运行多种不同种类的应用程序。它的主要特性包括&#xff1a;批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。Flink 不仅可以运行在包括 YARN、 Mesos、K8s 在内的多种资源管理框架上&#xff0c;还支持…

智慧社区前景无限,科技引领未来发展

社区是城镇化发展的标志&#xff0c;作为人类现代社会的生活的基本圈子&#xff0c;是人类生活离不开的地方&#xff0c;社区人口密度大、车辆多&#xff0c;管理无序&#xff0c;社区的膨胀式发展多多少少带来一定的管理上的缺失。社区作为智慧城市建设的重要一环&#xff0c;…

时间复杂度为 O(n^2) 的排序算法 | 京东物流技术团队

对于小规模数据&#xff0c;我们可以选用时间复杂度为 O(n2) 的排序算法。因为时间复杂度并不代表实际代码的执行时间&#xff0c;它省去了低阶、系数和常数&#xff0c;仅代表的增长趋势&#xff0c;所以在小规模数据情况下&#xff0c; O(n2) 的排序算法可能会比 O(nlogn) 的…

uniapp实战 —— 竖排多级分类展示

效果预览 完整范例代码 页面 src\pages\category\category.vue <script setup lang"ts"> import { getCategoryTopAPI } from /apis/category import type { CategoryTopItem } from /types/category import { onLoad } from dcloudio/uni-app import { compu…

【链表Linked List】力扣-114 二叉树展开为链表

目录 题目描述 解题过程 官方题解 题目描述 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应…

【Vulnhub 靶场】【Momentum: 2】【简单】【20210628】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/momentum-2,702/ 靶场下载&#xff1a;https://download.vulnhub.com/momentum/Momentum2.ova 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年06月28日 文件大小&#xff1a;698 MB 靶场作者&#xff1…

在OpenCV基于深度学习的超分辨率模型实践

1. 引言 OpenCV是一个开源的计算机视觉库&#xff0c;拥有大量优秀的算法。基于最新的合并&#xff0c;OpenCV包含一个易于使用的接口&#xff0c;主要用于实现基于深度学习方法的超分辨率&#xff08;SR&#xff09;。该接口包含预先训练的模型&#xff0c;这些模型可以非常容…

如何为 3D 模型制作纹理的最佳方法

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 您可以通过不同的方式为 3D 模型创建 3D 纹理。下面我们将介绍为 3D …

小调查:你申请的流量卡,快递员派件时让你激活并充话费了吗?

说到这个问题&#xff0c;就要给大家普及一下流量卡的激活方式了&#xff0c;并不是所有的流量卡快递都需要快递激活并充话费&#xff0c;只有在套餐详情种明确标注快递激活的流量卡才会有这个要求&#xff0c;自主激活的流量卡则不需要的。 如图所示&#xff1a; 接下来&#…

【征稿倒计时十天】第三届高性能计算与通信工程国际学术会议(HPCCE 2023)

【有ISSN、ISBN号&#xff01;&#xff01;往届均已完成EI检索】 第三届高性能计算与通信工程国际学术会议(HPCCE 2023) 2023 3rd International Conference on High Performance Computing and Communication Engineering (HPCCE 2023) 2023年12月22-24日 | 中国哈尔滨 第三…

听GPT 讲Rust源代码--src/tools(9)

File: rust/src/tools/rust-analyzer/crates/ide-assists/src/handlers/apply_demorgan.rs 在Rust源代码中&#xff0c;apply_demorgan.rs文件位于rust-analyzer工具的ide-assists库中&#xff0c;其作用是实现一个辅助函数&#xff0c;用于在代码中应用De Morgan定律的变换。 …

空间运算设备-Apple Vision Pro

苹果以其在科技领域的创新而闻名&#xff0c;他们致力于推动技术的边界&#xff0c;这在他们的产品中表现得非常明显。他们尝试开发一项的新型突破性显示技术。在 2023 年 6 月 5 日官网宣布将发布 Apple Vision Pro 头戴空间设备&#xff0c;我们一起来了解一下 Apple Vision …

MySQL_1. mysql数据库介绍

shell脚本差不多快完结了接下来会为大家更新MySQL系列的相关的基础知识笔记&#xff0c;希望对大家有所帮助&#xff0c;好废话不多说&#xff0c;接下来开始正题&#xff01; 1.mysql数据库介绍 mysql 是一款安全、跨平台、高效的&#xff0c;并与 PHP、Java 等主流编程语言…

企业博客SEO:优化SOP,助您提升搜索引擎可见性

企业博客是互联网时代企业与用户沟通的重要渠道之一&#xff0c;引流成本也比较低。然而&#xff0c;依然有企业会处在3种状态&#xff1a; 1. 有博客&#xff0c;但内容更新不积极或搁置 2. 有博客&#xff0c;但内容散乱 3. 根本就没有博客 如果是这几种状态&#xff0c;…

解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法

文章目录 一、机器学习算法简介1.1 机器学习算法包含的两个步骤1.2 机器学习算法的分类 二、KNN三、K-均值四、降维算法五、梯度Boosting算法和AdaBoosting算法六、结语 一、机器学习算法简介 机器学习算法是一种基于数据和经验的算法&#xff0c;通过对大量数据的学习和分析&…

金融量化交易:使用Python实现遗传算法

大家好&#xff0c;遗传算法是一种受自然选择过程启发的进化算法&#xff0c;用于寻找优化和搜索问题的近似解决方案。本文将使用Python来实现一个用于优化简单交易策略的遗传算法。 1.遗传算法简介 遗传算法是一类基于自然选择和遗传学原理的优化算法&#xff0c;其特别适用…

小知识点——Servlet

Servlet 是什么&#xff1f; Java Servlet 是运行在 Web 服务器或应用服务器上的程序&#xff0c;它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet&#xff0c;您可以收集来自网页表单的用户输入&#xff0c;呈…

经典神经网络——ResNet模型论文详解及代码复现

论文地址&#xff1a;Deep Residual Learning for Image Recognition (thecvf.com) PyTorch官方代码实现&#xff1a;vision/torchvision/models/resnet.py at main pytorch/vision (github.com) B站讲解&#xff1a; 【精读AI论文】ResNet深度残差网络_哔哩哔哩_bilibili …

springboot集成cxf

一、Apache CXF是什么&#xff1f; Apache CXF 是一个开源的 Services 框架&#xff0c;CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services &#xff0c;像 JAX-WS 。这些 Services 可以支持多种协议&#xff0c;比如&#xff1a;SOAP、XML/HTTP、RESTful HTTP 或者 COR…