语法:Arrays.asList(值1,值2,....)
作用:它可以把一个数组或者多个参数转换成一个 List 集合
代码演示:
//创建一个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集合中的值类型转换成指定要转换的对象类型
代码演示:
//将List<User>中的泛型集合User转换为List<UserVO>的UserVO泛型集合
List<UserVO> userVOs = BeanUtil.copyToList(users, UserVO.class);
语法:CollectionUtils.isEmpty(集合)
作用:判断参数null或者其size等于0,可以同时判空和长度,不会报空指针异常
代码演示:
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进行增加和删除操作);
List list = Collections.emptyList();
System.out.println(list);//输出不为null的[]集合
System.out.println(list.size());//输出0
语法:集合.stream().filter(集合项->判断条件)
作用:根据判断条件对集合进行筛选过滤
//创建一个包含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(转换的类型);
作用:将一个对象集合中的某一属性给提取出来,然后转换成相应类型
//设置获取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类型的集合
//根据年龄分组
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
//根据对象的属性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哈希值,并以十六进制字符串形式返回。
String password = "123456"
//输出123456字符串的md5加密文,其md5加密文为e10adc3949ba59abbe56e057f20f883e
DigestUtils.md5DigestAsHex(password.getBytes())
语法:StringUtils.hasLength(字符串)
作用:如果字符序列不为 null 值,并且字符序列的长度大于 0 ,则返回 true
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))