几款好用的开源工具类
时间:2022-07-26
本文章向大家介绍几款好用的开源工具类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
开箱即用的几款常有工具类
1. 空值判断
- 空字符串判断
boolean isEmpty = StringUtils.isEmpty(str);
- 空集合判断
boolean isEmpty = CollectionUtils.isNotEmpty(list);
- 对象判空,在某些其它的工具类中
StringUtils
既可以对字符串判空,也可以对对象进行判空
-
org.apache.commons.lang3
包
StringUtils.isEmpty(CharSequence cs);
public static boolean isEmpty(CharSequence cs){
return cs == null || cs.length() ==0
}
- 在
org.springframework.util
参数类型是Object的
public static boolean isEmpty(Object obj){
return obj == null || "".equals(obj);
}
2.stream
流操作相关的工具
- 集合去重过滤
List<User> userList = userService.getList();
//去掉某个字段为空的数据
userList = userList.stream().filter(s =>StringUtils.isEmpty(s.getPhone()).collect(Collectors.toList());
- 遍历操作
userList = userList.stream().map(user -> user.getName());
userList = userList.stream().map(user -> user.getName()).forEach(str -> {System.out.println(str)})
//提取所有的id
List<Integer> ids = userList.stream().map(User::getId()).collect(Collectors.toList());
- 排序操作
//根据id进行排序
userList = userList.stream().sorted(User::getId()).collect(Collectors.toList());
//根据其它排序
userList = userList.stream().sorted((In1,In2) -> In1- In2).collect(Collectors.toList());
- 判断操作
//判断是否有名字为jack的
boolean isExsit = userList.stream().anyMacth(s ->"jack".equals(s.getName()));
//判断某个字段是否全为空
boolean isEmpty = userList.stream().nonoMatch(s -> s.getEmail().isEmpty());
- 对象集合分组去重
Map<Integer, List<PurchaseUpdate>> maps = updates.stream().collect(Collectors.groupingBy(PurchaseUpdate::getWriteId, Collectors.toList()));
maps.forEach((k,v) ->{
v.forEach(update ->{
vo.setId(update.getId());
vo.setNumber(update.getCount());
purchaseService.update(vo);
build.append("xxxxx---------xxxxxx");
})
});
- 对象集合抽取某个元素组成新的数据或者按照符号拼接
String currentIds = list.stream().map(p ->p.getCurrentUser() == null ? null : p.getCurrentUser().toString()).collect(Collectors.joining(","));
List<Integer> ids = list.stream().map(User::getId).collect(Collectors.toList());
3.OkHttp3 请求, http请求
一个新的http客户端,使用简单,性能极好,可以完美代替HttpClient
//get 请求
OkHttpClient client = new OkHttpClient();
String run (String url) {
Request request = new Request.Builder()
.url(url)
.build();
try {
Response res = client.newCall(request).execute();
return res.body().string();
} catch (Exception e){
return e;
}
}
//Post请求
public static final MediaType JSON = MediaType.get("application/json;charset=utf-8");
String run (String url ,String json) {
RequestBody body = RequestBody.create(json,JSON);
Request request = new Request.Builder()
.url(url)
.body(body)
.build();
try {
Response res = client.newCall(request).execute();
return res.body().string();
}
}
4. 集合转符号分割的字符串
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
String result = Joiner.on("-").join(list);
> 1-2-3
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TKE上动态部署jenkins slaves
- CVE-2017-0261及利用样本分析
- 流水的NLP铁打的NER:命名实体识别实践与探索
- Spring Boot入门系列(十七)Mybatis创建自定义mapper 实现多表关联查询!
- 让你笑的七个linux命令
- GPU并行计算之向量和
- ShardingJdbc分库分表实战案例解析(下)
- 分布式链路追踪Skywalking Skywalking 存储客户端设计
- Kubernetes 的新武器:层级命名空间
- 手撕distributed ram类型同步FIFO
- 解决PIL透明的图片放在新图片上报错
- Dissonance 使用(一)
- Dissonance 使用(三)
- 从代码角度看各类子域名收集工具
- Shiro-550 PoC 编写日记