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))
相关推荐
vHelios13 分钟前
【电商项目】测试 授权功能 遇到的问题与解决方案
java·spring boot·sql
2401_8949155338 分钟前
GEO 定位优化源码搭建常见报错排查:数据库、伪静态、接口调试
java·数据库·网络协议·tcp/ip·spring·unity
bbq粉刷匠43 分钟前
ArrayList 整体认识
java·jvm·数据结构
水无痕simon1 小时前
15 转账对接文档
java·区块链
西凉的悲伤1 小时前
Java 基于 MySQL 行锁实现高并发业务序列号生成器
java·mysql·springboot·序列号生成
lv__pf1 小时前
servlet与jsp
java·开发语言·servlet
xieliyu.1 小时前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
云烟成雨TD1 小时前
Micrometer 系列【28】Spring Boot Actuator | 其他指标速览
java·spring boot·云原生
meilindehuzi_a1 小时前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器
莫得感情 o1 小时前
设计模式 13 · 桥接模式
java·设计模式·桥接模式