网站首页 > 技术文章 正文
0.前言
- 用到的依赖
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.15</version>
</dependency>
<!-- fastjson2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.21</version>
</dependency>
- 实体类
/**
* @author 知否技术
* @description
* @date 2024-08-10 17:39
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
private Integer id;
private String name;
private Integer age;
}
- 名词解读
- char : 字符
- String : 字符串
- Object : 对象
1.String 相关
1.1 String 转 char
String strChar = "知否技术";
char[] charArr = strChar.toCharArray();
log.info("charArr: {}", charArr);
1.2 String 转数组String str = "知否,技术";
String[] strArray = str.split(",");
for (String strElement : strArray) {
log.info("strElement: {}", strElement);
}
2.数组相关
2.1 数组转 String
String[] arr = { "张三", "李四", "知否君" };
1.hutool
import cn.hutool.core.util.ArrayUtil;
String[] arr = { "张三", "李四", "知否君" };
String str = ArrayUtil.toString(arr);
log.info("str: {}", str);
2.Arrays 和 Stream
import java.util.Arrays;
import java.util.stream.Collectors;
String str = Arrays.stream(arr).collect(Collectors.joining(","));
log.info("str: {}", str);
2.2 数组转 List
String[] array = {"亚瑟","李白","后羿"};
1.Arrays
List<String> list = Arrays.asList(array);
log.info("list: {}", list);
注:通过该方式转成 List 之后,不能进行增删操作,只能进行查改操作,否则会抛异常
以下两种方式可以对转换之后的 List 进行增删改查操作:
2.ArrayList的构造器进行转
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));
3.Collections.addAll()
List<String> list = new ArrayList<>();
Collections.addAll(list, array);
2.3 数组转 Set
String[] arr = new String[]{"A", "B", "C", "C"};
Set<String> set = new HashSet<>(Arrays.asList(arr));
log.info("set: {}", set);
3.List相关3.1 List 转数组List<String> list = Arrays.asList("张三","李四");
String[] stringArray = list.toArray(new String[0]);
3.2 List 转 StringList<String> list = Arrays.asList("张三","李四");
String listToStr = String.join(",", list);
log.info("listToStr: {}", listToStr);
3.3 List 转 Map
1.Stream 流,key 相同,后面的覆盖前面的
List<User> users = Arrays.asList(new User(1, "张三", 18),new User(1, "张三", 99), new User(2, "李四", 20));
Map<Integer, User> map = users.stream().collect(Collectors.toMap(User::getId, Function.identity(),(key1, key2) -> key2));// key 相同,后面的覆盖前面的
log.info("map: {}", map);
2.Stream 流,key 相同,指定对象的属性作为返回 map的 key 和 value
List<User> users = Arrays.asList(new User(1, "张三", 18),new User(1, "张三", 99), new User(2, "李四", 20));
Map<String, Integer> map = users.stream().collect(Collectors.toMap(User::getName,User::getAge,(key1, key2) -> key2));
log.info("map: {}", map);
3.Stream 流,key 相同,根据对象属性分组
List<User> users = Arrays.asList(new User(1, "张三", 18),new User(1, "张三", 99), new User(2, "李四", 20));
Map<Integer, List<User>> map = users.stream().collect(Collectors.groupingBy(User::getId)); // 根据什么分组
log.info("map: {}", map);
3.4 List 转 Set
List<String> list = Arrays.asList("张三","李四");
1.使用 HashSet 构造函数
Set<String> set = new HashSet<>(list);
2.使用 Set 的 addAll 方法
Set<String> set = new HashSet<>();
set.addAll(list);
3.stream 流
Set<String> set = list.stream().collect(Collectors.toSet());
3.5 List 转 JSONArray
List<User> users = Arrays.asList(new User(1, "张三", 18), new User(2, "李四", 20));
1.hutool
JSONArray jsonArray = JSONUtil.parseArray(users);
2.fastjson
JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(users));
4.Set 相关
Set<String> neSet = new HashSet();
neSet.add("张三");
neSet.add("李四");
4.1 Set 转 List
1.构造函数
List<String> result = new ArrayList<>(set);
2.stream 流
List<String> list = set.stream().collect(Collectors.toList());
4.2 Set 转数组
1.toArray
String[] strArray = set.toArray(new String[set.size()]);
2.stream 流
String[] strArray = set.stream().toArray(java[]::new);
5.Object 相关
5.1 Object 转 JSONObject
User obj = new User(1, "张三", 18);
1.hutool
JSONObject jsonObject = JSONUtil.parseObj(obj);
log.info("map:{}",jsonObject);
2.fastjson
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(obj));
log.info("map:{}",jsonObject);
5.2 Oject 转 Map
hutool
Map<String, Object> map = BeanUtil.beanToMap(new User(1, "张三", 18));
log.info("map:{}",map);
6.Map 相关
Map<String, Object> map = new HashMap<>();
map.put("name","张三");
map.put("age",18);
6.1 Map 转 JSONObject
1.hutool
JSONObject jsonObject = JSONUtil.toBean(JSONUtil.toJsonStr(map), JSONObject.class);
log.info("jsonObject:{}",jsonObject);
2.fastjson
JSONObject jsonObject = new JSONObject(map);
log.info("map:{}",jsonObject);
6.2 Map 转 Object
hutool
User user = JSONUtil.toBean(JSONUtil.toJsonStr(map), User.class);
log.info("user:{}",user);
6.3 Map 转 JSONString
1.hutool
String mapToStr = JSONUtil.toJsonStr(map);
log.info("mapToStr:{}",mapToStr);
2.fastjson
String mapToStr = JSONObject.toJSONString(map);
log.info("mapToStr:{}",mapToStr);
7.JSON 相关
7.1 JSON 字符串转 JSONObject
1.hutool
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
log.info("jsonObject:{}",jsonObject);
2.fastjson
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
log.info("jsonObject:{}",jsonObject);
7.2 JSON 字符串转 JSONArray
1.hutool
String jsonStr = "[{\"id\": 1, \"name\": \"知否君\"}, {\"id\": 2, \"name\": \"李白\"}]";
JSONArray jsonArray = JSONUtil.parseArray(jsonStr);
log.info("jsonArray:{}",jsonArray);
2.fastjson
String jsonStr = "[{\"id\": 1, \"name\": \"知否君\"}, {\"id\": 2, \"name\": \"李白\"}]";
JSONArray jsonArray = JSON.parseArray(jsonStr);
log.info("jsonArray:{}",jsonArray);
7.3 JSON 字符串转 Object
1.hutool
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
User user = JSONUtil.toBean(jsonStr, User.class);
log.info("user:{}",user);
2.fastjson
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
User user = JSON.parseObject(jsonStr, User.class);
log.info("user:{}",user);
7.4 JSON 转 Map
1.hutool
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
Map map = JSONUtil.toBean(jsonStr, Map.class);
log.info("map:{}",map);
2.fastjson
String jsonStr = "{\"id\": 1, \"name\": \"知否君\"}";
Map map = JSON.parseObject(jsonStr, Map.class);
log.info("map:{}",map);
7.5 JSON 字符串转 List
1.hutool
String jsonStr = "[{\"id\": 1, \"name\": \"知否君\"}, {\"id\": 2, \"name\": \"李白\"}]";
List<User> list = JSONUtil.toList(jsonStr, User.class);
log.info("list:{}", list);
2.fastjson
String jsonStr = "[{\"id\": 1, \"name\": \"知否君\"}, {\"id\": 2, \"name\": \"李白\"}]";
List<User> list = JSON.parseArray(jsonStr, User.class);
log.info("list:{}", list);
java8
编程7
java · 目录
#java
上一篇公司项目配置了 AJ-Captcha验证码,竟然提升用户100%验证率!下一篇MySQL是怎样使用的,超全面的总结!
- 上一篇: Java8两个List集合取交集、并集、差集、去重并集
- 下一篇: C# String字符串常见操作
猜你喜欢
- 2025-01-13 Java 中 List 分片的 5 种方法
- 2025-01-13 你见过哪些实用到爆的 Java 代码技巧?
- 2025-01-13 手把手教你搭建一个基于Java的分布式爬虫系统「转」
- 2025-01-13 List的扩容机制,你真的明白吗?
- 2025-01-13 C# 基础知识系列- 3 集合数组
- 2025-01-13 去除 List 中的重复元素,你知道几种实现方法?
- 2025-01-13 C#中的List可以存储哪些类型的数据?
- 2025-01-13 java8对List集合根据某一字段进行分组
- 2025-01-13 PCHMI5.5二次开发文档(更新)
- 2025-01-13 Qt QString字符串分割、截取的3种方法
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)