当前位置: 首页 > news >正文

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

在这里插入图片描述

相关文章:

java8 常用code

文章目录 前言一、lambda1. 排序1.1 按照对象属性排序&#xff1a;1.2 字符串List排序&#xff1a;1.3 数据库排序jpa 2. 聚合2.1 基本聚合&#xff08;返回对象list&#xff09;2.2 多字段组合聚合&#xff08;直接返回对象list数量&#xff09; 二、基础语法2.1 List2.1.1 数…...

docker 镜像管理

搜索镜像&#xff1a;这种方法只能用于官方镜像库搜索基于 centos 操作系统的镜像# docker search centos ​按星级搜索镜像&#xff1a; 查找 star 数至少为 100 的镜像&#xff0c;默认不加 s 选项找出所有相关 ubuntu 镜像&#xff1a; # docker search ubun…...

Jira 中如何修改时间为绝对时间

问题描述 在使用Jira的时候&#xff0c;有一些时间显示的是相对时间&#xff0c;如&#xff1a;2天前&#xff0c;3个小时前等&#xff0c;有些用户不习惯这样的显示方式&#xff0c;希望使用绝对的时间格式&#xff0c;如&#xff1a;2022年2月22日 22:22 应该怎样修改 解…...

班级查分软件制作教程:老师必备技能!

首先&#xff0c;你需要选择一个合适的软件平台来制作班级查分软件。推荐使用群发成绩&#xff0c;因为它是一个功能强大且易于使用的在线查询系统&#xff0c;可以帮助你快速高效地制作班级查分软件​。 在制作班级查分软件之前&#xff0c;你需要准备好学生的成绩数据。这可以…...

Linux 的性能调优的思路

Linux操作系统是一个开源产品&#xff0c;也是一个开源软件的实践和应用平台&#xff0c;在这个平台下有无数的开源软件支撑&#xff0c;我们常见的apache、tomcat、mysql等。 开源软件的最大理念是自由、开放&#xff0c;那么Linux作为一个开源平台&#xff0c;最终要实现的是…...

如何通过webdriver禁用浏览器定位功能

今天碰到一个小问题&#xff0c;在使用了代理ip的情况下访问某些站点&#xff0c;但是还是显示本地的ip地址&#xff0c;这个是什么问题呢&#xff0c;原来是谷歌浏览器默认打开了定位功能 那么问题来了&#xff0c;如何在使用webdriver的时候关闭浏览器的定位功能呢&#xff1…...

网卡bonding绑定

目录 一、概念 1、概述&#xff1a; 二、实验 1、绑定案例&#xff1a; 一、概念 1、概述&#xff1a; 将多个物理网卡进行排列组合&#xff0c;形成逻辑网卡&#xff0c;网卡的高可用 绑定模式 mode0&#xff08;平衡负载模式&#xff09;&#xff1a;平时两块网卡均工…...

flink运行报Exception in thread “main“ java.lang.IllegalStateException

问题描述 运行flink程序时报异常&#xff0c;异常信息如下&#xff1a; Exception in thread "main" java.lang.IllegalStateException: No ExecutorFactory found to execute the application.at org.apache.flink.core.execution.DefaultExecutorServiceLoader.g…...

易点易动设备管理系统--提升设备备品备件管理效率的工具

设备备品备件管理是市场推广人员关注的重要问题之一。为了帮助市场推广人员提升设备备品备件管理效率&#xff0c;易点易动设备管理系统应运而生。本文将详细介绍易点易动设备管理系统的功能和优势&#xff0c;以及如何借助该系统提高设备备品备件管理效率&#xff0c;提升企业…...

第二十一章——网络通信

一.网络程序设计基础 1.局域网与互联网 2.网络协议 1.IP协议 IP是Internet Protocol的简称&#xff0c;是一种网络协议。 1.1 TCP/IP层次结构 2.TCP与UDP协议 TCP可保证数据从一端送至另一端时&#xff0c;能够确实送达&#xff0c;而且抵达的数据的排列顺序和送出时的顺序相…...

Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206]

Siemens-NXUG二次开发-打开与关闭prt文件[Python UF][20231206] 1.python uf函数1.1 NXOpen.UF.Part.Open1.2 NXOpen.UF.Part.LoadStatus1.3 NXOpen.UF.Part.Close1.4 NXOpen.UF.Part.AskUnits 2.示例代码3.运行结果3.1 内部模式3.2 外部模式 1.python uf函数 1.1 NXOpen.UF.P…...

2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序

2015年五一杯数学建模 C题 生态文明建设评价问题 原题再现 随着我国经济的迅速发展&#xff0c;生态文明越来越重要&#xff0c;生态文明建设被提到了一个前所未有的高度。党的十八大报告明确提出要大力推进生态文明建设&#xff0c;报告指出“建设生态文明&#xff0c;是关系…...

java:slf4j、log4j、log4j2、logback日志框架的区别与示例

文章目录 背景SLF4J - 简单日志门面:Log4j - 强大而古老的日志框架:Log4j2 - Log4j的升级版:Logback - Log4j的继任者:比较Springboot集成slf4j、log4j2参考 背景 在Java开发中&#xff0c;日志记录是一个不可或缺的组成部分。为了满足不同的需求&#xff0c;Java社区涌现出多…...

Mysql学习查缺补漏----02 mysql之DCL 数据控制语言

查看数据库里都有哪些用户。 使用root任何一个用户都可以登录。 本机登录。 也可以这样登录其他的机器。 、 修改user表。 刷新权限&#xff1a; 现在我们看到了只有本机才能登陆。 我们这样就可以限制这个mysql指定某台服务器登录。 详解忘记密码以及如何修改用户密码 我们…...

【Flink基础】-- 延迟数据的处理

目录 ​一、关于延迟的一些概念 1、什么是延迟? 2、什么导致互联网延迟?...

通过keepalived+nginx实现 k8s apiserver节点高可用

一、环境准备 K8s 主机配置&#xff1a; 配置&#xff1a; 4Gib 内存/4vCPU/60G 硬盘 网络&#xff1a;机器相互可以通信 k8s 实验环境网络规划&#xff1a; podSubnet&#xff08;pod 网段&#xff09; 10.244.0.0/16 serviceSubnet&#xff08;service 网段&#xff09;: 1…...

JavaScript 数组

JavaScript 数组 用来存储一系列相关数据的一种数据类型 创建数组 字面量方式 ----- [1,2,3,4,5,6];实例化构造函数 ----- new Array(1,2,3,4,5,6);组成数组的元素可以是任意的数据类型包括数组本身&#xff1b; new Array(n): n 表示数组的长度 内容操作 获取&#xff08;查…...

【数据结构】二叉树的实现

目录 1. 前言2. 二叉树的实现2.1 创建一棵树2.2 前序遍历2.2.1 分析2.2.2 代码实现2.2.3 递归展开图 2.3 中序遍历2.3.1 分析2.3.2 代码实现2.3.3 递归展开图 2.4 后序遍历2.4.1 分析2.4.2 代码实现2.4.3 递归展开图 2.5 求节点个数2.5.1 分析2.5.2 代码实现 2.6 求叶子节点个数…...

振弦采集仪在土体与岩体监测中的可靠性与精度分析

振弦采集仪在土体与岩体监测中的可靠性与精度分析 振弦采集仪是一种用于土体和岩体监测的重要设备&#xff0c;它可以通过测量振动信号来获取土体或岩体的力学参数&#xff0c;如应力、应变、弹性模量等。而振弦采集仪的可靠性和精度是影响其应用效果的关键因素。 首先&#x…...

C语言进阶之路-指针、数组等混合小boss篇

目录 一、学习目标&#xff1a; 二、指针、数组的组合技能 引言 指针数组 语法 数组指针 三、勇士闯关秘籍 四、大杂脍 总结 一、学习目标&#xff1a; 知识点&#xff1a; 明确指针数组的用法和特点掌握数组指针的用法和特点回顾循环等小怪用法和特点 二、指针、数…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...