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))
相关推荐
达文汐5 分钟前
【困难】力扣算法题解析LeetCode332:重新安排行程
java·数据结构·经验分享·算法·leetcode·力扣
培风图南以星河揽胜6 分钟前
Java版LeetCode热题100之零钱兑换:动态规划经典问题深度解析
java·leetcode·动态规划
启山智软29 分钟前
【中大企业选择源码部署商城系统】
java·spring·商城开发
我真的是大笨蛋32 分钟前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怪兽源码1 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
恒悦sunsite1 小时前
Redis之配置只读账号
java·redis·bootstrap
梦里小白龙1 小时前
java 通过Minio上传文件
java·开发语言
人道领域1 小时前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
sheji52612 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言