//transform实现: listnum list=lists.transform (maplist,s-integer.valueof ) s.get ) ' valueitem ' );
//恢复: List mapList=Lists.newArrayList (;
Map map1=Maps.newHashMap (;
map1.put('nameitem )、'香蕉';
map1.put(valueitem ),2 );
maplist.add(map1;
Map map2=Maps.newHashMap (;
map2.put('nameitem )、'香蕉';
map2.put(valueitem ),3 );
maplist.add(map2;
Set set=new HashSet (;
List value1=mapList.stream (
. map(o-{
Optional option=o.entrySet ().stream ) )。
. findany(//.findany )的获取是Optional,对Optional调用map方法获取的是Optional,Optional的值为null,调用orElse方法也没有问题
. filter(m-m.Getkey ) ).equals ) ' valueitem ' ) )
. map(I-{
Object value2=i.getValue (; returnvalue2;
也可以使用//.orElse (' ' )//.orElse
;
option.if present (r-set.add (integer.value of (r ' ) )//直接调用(如果存在)
returnoption.get (;
}.collect(collectors.tolist ) );
system.out.println('-1-'set; //2,3
system.out.println('-1-'value1);
}
转自: https://blog.csdn.net/weixin _ 42201566/article/details/81513769
Lists.transform :可以轻松地从一种类型的list转换为另一种类型的list。
使用场景:
1、取出某个List的所有map的某个key所对应的value值并返回新的List
Map map=Maps.newHashMap (;
map.put('1,' test1);
map.put('2,' test2);
Map map2=Maps.newHashMap (;
map2.put('1',' test3' );
map2.put('4,' test2);
List list2=Lists.newArrayList (;
list2.add(map );
list2.add(map2;
list list3=lists.transform (list 2,s-s.get('1);
list3. foreach (s-system.out.println ) );
2 .通常可以使用Lists.transform检索对象list的属性并返回新的list,如下所示
publicstaticvoidmain (string [ ] args ) {
list result list=lists.new ArrayList (newresult (1,' test1 ',newresult ) 2,' test2',new result ) 3,' test3' //
list namelist=lists.transform (result list,tuple -tuple.getNameStr () );
namelist.foreach (s-system.out.println ) );
system.out.println('========' );
resultlist.foreach(result-{
result.setnamestr(reset );
);
namelist.foreach (s-system.out.println ) );
}classResult{privateInteger id; 私有字符串名称; publicresult(integerid,String nameStr ) {this.id=id; this.nameStr=nameStr;
}公共集成器getid () {returnid;
}publicvoidsetid(integerid ) {this.id=id;
}publicString getNameStr () {returnnameStr;
} publicvoidsetnamestr (string namestr ) {this.nameStr=nameStr;
}
}
结果:
test1
test2
test3
===================
重置
重置
重置
结论:
Lists.transform ()处理的list的值发生变化时(Lists.transform ) )的处理结果也会发生变化