- collect闭包中也可以写return ,但如果有条件判断,返回的List可能包含null
- 注意一点,collect方法返回的元素数量不变
- 可以使用.grep()去掉null,元素,但这样,不如直接使用findAll
* 求List1中有的但是List2中没有的元素
public static List<String> subList(List<String> list1, List<String> list2) {
Map<String, String> tempMap = list2.parallelStream().collect(Collectors.toMap(Function.identity()
使用collect 获取List的属性集合时,会存在null元素
这不是我想要的,groovy似乎没有lamda表达式的写法
定义变量,通过循环添加又不是我想要的,感觉不是很优雅
2 可行写法
lamda加上了groovy的collect方法
persons.stream().filter(c->{return c.name!=null;}).collect{it.name}
纯粹的lamda写法
persons.stream().filter
List<Order> list = new ArrayList<User>();
Order o1 = new Order("1","MCS-2019-1123");
list.add(o1 );
Order o2= new Order("2","MCS-2019-1124");
list....
list.stream().map().collect() 的含义
起因:最近在学习别人的源码的时候,在登陆验证权限的时候看到了这样一坨代码
List roles = roleDao.selectByUserId(user.getId());
List roleIds = roles.stream()
.map(Role::getId)
.collect(Collectors.toList());
傻傻的我看到之后虽然知道这是1.8新特性,但是因为没接触过而不知道是什么意思,搜索了一番便在这里记录一下,上面
一、groovy是什么
简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中。
作为跑在JVM中的另一种语言,groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了java烦琐的文法。同样的语句,使用groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。
二、开发环境
1、 jdk 1.5以上
2、 ...
//根据某一元素去重
List<Object> list = lists.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(
Comparator.compar
1、list 中的获取、添加、删除元素
添加方法:list.add(list2);获取方法:list.get(index);
删除方法:list.remove(index) --按索引删除;list.remove(Obj o) --按元素内容删除;
List<String> person=new ArrayList<>();
person.add("jackie");