Java 高级语法

语法:Arrays.asList(值1,值2,....)

作用:它可以把一个数组或者多个参数转换成一个 List 集合

代码演示:

java 复制代码
//创建一个List类型的集合,其值为Integer类型,集合包含1,2,3三个数值
List<Integer> integers = Arrays.asList(1, 2, 3);
​
//创建一个List类型的集合,其值为String类型,集合包含java,python,c++三个字符串
List<String> list = Arrays.asList("java", "python", "c++");

语法:BeanUtil.copyToList(目标对象集合,转换对象类型)

作用:将一个List集合中的值类型转换成指定要转换的对象类型

代码演示:

java 复制代码
//将List<User>中的泛型集合User转换为List<UserVO>的UserVO泛型集合
List<UserVO> userVOs = BeanUtil.copyToList(users, UserVO.class);

**语法:**CollectionUtils.isEmpty(集合)

作用:判断参数null或者其size等于0,可以同时判空和长度,不会报空指针异常

代码演示:

java 复制代码
List<User> list = new LinkedList<>();
list.add(user);
//输出为false,因为集合list不为null,且size>0
System.out.println(CollectionUtils.isEmpty(list));

List<User> list2 = new LinkedList<>();
//输出为true,因为集合list2的size=0
System.out.println(CollectionUtils.isEmpty(list2));
​
//输出为true,因为集合list3的值为null
List<User> list3 = null;
System.out.println(CollectionUtils.isEmpty(list3));

**语法:**Collections.emptyList()

**作用:**返回一个空的List(使用前提是不会再对返回的list进行增加和删除操作);

java 复制代码
List list = Collections.emptyList();
System.out.println(list);//输出不为null的[]集合
System.out.println(list.size());//输出0

**语法:**集合.stream().filter(集合项->判断条件)

**作用:**根据判断条件对集合进行筛选过滤

java 复制代码
//创建一个包含1,2,3三个值的集合
List<Integer> list1 = Arrays.asList(1,2,3);

//list1集合进行过滤筛选,筛选条件为list1集合的每一项大于1则可以留下,小于等于1则被过滤掉,最终剩下2和3,最后把身下的2和3转化为集合赋值给list2集合
List<Integer> list2 = list1.stream().filter(item -> item > 1).collect(Collectors.toList());

//输出为2   3
list2.forEach(System.out::println);

**语法:**对象集合.stream().map(对象::对象某一属性).collect(转换的类型);

**作用:**将一个对象集合中的某一属性给提取出来,然后转换成相应类型

java 复制代码
//设置获取id为1,2,3的对象集合的sql语句
QueryWrapper<User> queryWrapper = new QueryWrapper<User>().select("id", "username").in("id",1,2,3);

//获取到id为1,2,3的对象集合
List<User> users = userMapper.selectList(queryWrapper);

//提取users集合的每一项User的id值,然后转换为List集合赋值给list
List<Long> list = users.stream().map(User::getId).collect(Collectors.toList());

//输出1,2,3
list.forEach(System.out::println);

**语法:**Collectors.groupingBy(对象::分组属性)

**作用:**根据分组属性将集合进行分组,分组后为Map类型的集合

java 复制代码
//根据年龄分组
List<User> userList = new ArrayList<>();

//方法引用实现,根据User类的age属性进行分组,分组后以key和value的形式进行存储,key存储age属性,value存储User对象
Map<Integer, List<User>> ageGroupMap = userList.stream().collect(Collectors.groupingBy(User::getAge));

**语法:**Collectors.toMap()

**作用:**将一个List转换为Map

java 复制代码
//根据对象的属性1和属性2进行分组存储到Map集合,属性1为key,属性2为value
Map<Long, String> map = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
​
//根据对象的属性1和集合的对象项进行分组存储到Map集合,属性1为key,对象2为value,p -> p就是进来的是什么,最终就是什么,这里就是进来的是User对象,出去的也就是User对象
Map<Long, User> map = userList.stream().collect(Collectors.toMap(User::getId, p -> p));
​
//如果有key有重复值,可以在后面加(a, b) -> b第三个属性,(a, b) -> b的意思就是,如果存在重复的,永远取后面一个
Map<Integer, String> map = userList.stream().collect(Collectors.toMap(User::getAge, User::getName, (a, b) -> b));
复制代码

**语法:**DigestUtils.md5DigestAsHex(字节数组类型)

**作用:**将字节数组转化为MD5哈希值,并以十六进制字符串形式返回。

java 复制代码
String password = "123456"

//输出123456字符串的md5加密文,其md5加密文为e10adc3949ba59abbe56e057f20f883e
DigestUtils.md5DigestAsHex(password.getBytes())

**语法:**StringUtils.hasLength(字符串)

**作用:**如果字符序列不为 null 值,并且字符序列的长度大于 0 ,则返回 true

java 复制代码
String str1 = "wrw"

//字符序列不为 null 值,并且字符序列的长度大于
System.out.println(StringUtils.hasLength(token)) 0 ,输出true

String str2 = ""

//长度不大于0,输出false
System.out.println(StringUtils.hasLength(token))

String str2 = null

//字符序列为 null,值输出false
System.out.println(StringUtils.hasLength(token))
相关推荐
牛马baby19 分钟前
Springboot 自动装配原理是什么?SPI 原理又是什么?
java·spring boot·后端
小小深40 分钟前
了解JVM
java·jvm
Sunlight_7771 小时前
第五章 SQLite数据库:1、SQLite 基础语法及使用案例
java·linux·服务器·jvm·数据库·tcp/ip·sqlite
JhonKI1 小时前
【从零实现高并发内存池】内存池整体框架设计 及 thread cache实现
java·redis·缓存
何似在人间5751 小时前
SpringAI+DeepSeek大模型应用开发——4 对话机器人
java·机器人·大模型应用开发·spring ai
-曾牛2 小时前
【LangChain4j快速入门】5分钟用Java玩转GPT-4o-mini,Spring Boot整合实战!| 附源码
java·开发语言·人工智能·spring boot·ai·chatgpt
kfepiza2 小时前
HttpSessionListener 的用法笔记250417
java·笔记·servlet·tomcat
冬天vs不冷2 小时前
SpringBoot条件注解全解析:核心作用与使用场景详解
java·spring boot·python
百锦再2 小时前
Android Studio 实现自定义全局悬浮按钮
android·java·ide·app·android studio·安卓
百锦再2 小时前
Android Studio 项目文件夹结构详解
android·java·ide·ios·app·android studio·idea