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))
相关推荐
蓝澈11216 分钟前
迪杰斯特拉算法之解决单源最短路径问题
java·数据结构
Kali_0713 分钟前
使用 Mathematical_Expression 从零开始实现数学题目的作答小游戏【可复制代码】
java·人工智能·免费
rzl0225 分钟前
java web5(黑马)
java·开发语言·前端
guojl44 分钟前
深度解读jdk8 HashMap设计与源码
java
guojl1 小时前
深度解读jdk8 ConcurrentHashMap设计与源码
java
爱上语文1 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端
A~taoker1 小时前
taoker的项目维护(ng服务器)
java·开发语言
HGW6891 小时前
基于 Elasticsearch 实现地图点聚合
java·elasticsearch·高德地图
hi星尘2 小时前
深度解析:Java内部类与外部类的交互机制
java·开发语言·交互
wuxinyan1232 小时前
Java面试题033:一文深入了解MySQL(5)
java·数据库·mysql·面试