//省略所有getter及setter方法
}
创建流
//创建list
List permissionList = new ArrayList();
// 为集合创建串行流对象
Stream stream = permissionList.stream();
// 为集合创建并行流对象
Stream parallelStream = permissionList.parallelStream();
filter 过滤
filter 主要是做筛选用 filte括号里面结果满足返回true 不满足返回false,返回结果为return true筛选后的结果
// 获取权限类型为目录的权限
// permission 为permissionList中每一个对象
// permission.getType() 获取type判断type是否为1 返回数据为type=1的对象
List dirList = permissionList.stream()
.filter(permission -> permission.getType() == 0)
.collect(Collectors.toList());
// 第二种写法
List dirList = permissionList.stream()
.filter( permission -> {
if (permission.getType() == 0){
return true;
}
return false;
}).collect(Collectors.toList());
map筛选
map为获取map括号里面return 出来的值
// 获取所有权限的id组成的集合
List idList = permissionList.stream()
.map(permission -> permission.getId())
.collect(Collectors.toList());
//第二种写法
List list = permissionList.stream()
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】 浏览器打开:qq.cn.hn/FTf 免费领取
.map(permission -> {
return permission.getId();
}).collect(Collectors.toList());
list获取指定数量元素
从Stream中获取指定数量的元素。
// 获取前3个权限对象组成的集合
List firstFiveList = permissionList.stream()
.limit(3)
.collect(Collectors.toList());
skip跳过指定下标
// 跳过前5个元素,返回后面的
List skipList = permissionList.stream()
.skip(5)
.collect(Collectors.toList());
count获取总数
// count操作:获取所有目录权限的个数
long dirPermissionCount = permissionList.stream()
.filter(permission -> permission.getType() == 0)
.count();
sorted排序
sorted 排序 括号中返回的为 -1 0 1
// 将所有权限按先目录后菜单再按钮的顺序排序
//默认正序
List sortedList = permissionList.stream()
.sorted(Comparator.comparing(UmsPermission::getType)).collect(Collectors.toList());
//倒序 reversed
List sortedList = permissionList.stream()
.sorted(Comparator.comparing(UmsPermission::getType).reversed()).collect(Collectors.toList());
//第二种写法 正序
List sortedList = permissionList.stream()
//permission1 下一个元素的值 permission2 当前元素的值
.sorted((permission1,permission2)->{
//compareTo对比方法介绍



