0
点赞
收藏
分享

微信扫一扫

java8 Stream API及常用方法

@ApiModelProperty(value = "权限值")

private String value;

@ApiModelProperty(value = "图标")

private String icon;

@ApiModelProperty(value = "权限类型:0->目录;1->菜单;2->按钮(接口绑定权限)")

private Integer type;

@ApiModelProperty(value = "前端资源路径")

private String uri;

@ApiModelProperty(value = "启用状态;0->禁用;1->启用")

private Integer status;

@ApiModelProperty(value = "创建时间")

private Date createTime;

@ApiModelProperty(value = "排序")

private Integer sort;

private static final long serialVersionUID = 1L;

//省略所有getter及setter方法

}

创建流

//创建list

List<UmsPermission> permissionList = new ArrayList();

// 为集合创建串行流对象

Stream<UmsPermission> stream = permissionList.stream();

// 为集合创建并行流对象

Stream<UmsPermission> parallelStream = permissionList.parallelStream();

filter 过滤

filter 主要是做筛选用 filte括号里面结果满足返回true 不满足返回false,返回结果为return true筛选后的结果

// 获取权限类型为目录的权限

// permission 为permissionList中每一个对象

// permission.getType() 获取type判断type是否为1 返回数据为type=1的对象

List<UmsPermission> dirList = permissionList.stream()

.filter(permission -> permission.getType() == 0)

.collect(Collectors.toList());

// 第二种写法

List<UmsPermission> dirList = permissionList.stream()

.filter( permission -> {

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎徽关注公zhong号:编程进阶路 加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

if (permission.getType() == 0){

return true;

}

return false;

}).collect(Collectors.toList());

map筛选

map为获取map括号里面return 出来的值

// 获取所有权限的id组成的集合

List<Long> idList = permissionList.stream()

.map(permission -> permission.getId())

.collect(Collectors.toList());

//第二种写法

List<Integer> list = permissionList.stream()

.map(permission -> {

return permission.getId();

}).collect(Collectors.toList());

list获取指定数量元素

从Stream中获取指定数量的元素。

// 获取前3个权限对象组成的集合

List<UmsPermission> firstFiveList = permissionList.stream()

.limit(3)

.collect(Collectors.toList());

skip跳过指定下标

// 跳过前5个元素,返回后面的

List<UmsPermission> 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<UmsPermission> sortedList = permissionList.stream()

.sorted(Comparator.comparing(UmsPermission::getType)).collect(Collectors.toList());

//倒序 reversed

List<UmsPermission> sortedList = permissionList.stream()

.sorted(Comparator.comparing(UmsPermission::getType).reversed()).collect(Collectors.toList());

//第二种写法 正序

List<UmsPermission> sortedList = permissionList.stream()

//permission1 下一个元素的值 permission2 当前元素的值

举报

相关推荐

0 条评论