一 lamdba 表达式根据List集合 作为过滤条件 实战
1.1 判断一个集合的对象的id,是否存在于另一个集合id当中,如何存在,生成一个新的集合对象。
public List getFilterList(List<ReportFileBean> showlist,String rdpFileUuIds[]){
List rdpFileUuIdList = Arrays.asList(rdpFileUuIds);
List result = null;
result = showlist.stream()
.filter((ReportFileBean s) -> rdpFileUuIdList.contains(s.getUuid()))
.collect(Collectors.toList());
return result;
}1.2 lambda 表达式如何遍历List<Map>
public static void main(String[] args) {
Map map1 = new HashMap();
map1.put("1",2); map1.put("2",3); map1.put("3",4);
Map map2 = new HashMap();
map2.put("3", 4); map2.put("5", 6); map2.put("7", 8); map2.put("9", 10);
List<Map> list = new ArrayList();
list.add(map1);
list.add(map2);
list.stream().forEach(map -> map.forEach((k,v) -> System.out.println("key: value = " + k + ":"+ v)));
}1.3 遍历list<Map> 采用forEach+if 的条件判断来实现
public static void main(String[] args) {
Map map1 = new HashMap();
map1.put("1",2); map1.put("2",3); map1.put("3",4);
Map map2 = new HashMap();
map2.put("3", 4); map2.put("5", 6); map2.put("7", 8); map2.put("9", 10);
List<Map> list = new ArrayList();
list.add(map1);
list.add(map2);
list.stream().forEach(map -> map.forEach((k,v) ->{
if((Integer)v + Integer.valueOf((String)k)>10){
System.out.println("key : value"+ v +":"+k);
}
}
) );
}
//取出k+v>10 的元素并返回对应的k
public Set<String> getSum1(Map<String, Integer> map1) {
Set<String> set=map1.keySet();
Set<String> set1=set.stream().filter(key ->((Integer.valueOf(key)+map1.get(key).intValue())>10)).collect(Collectors.toSet());
return set1;
}
版权声明:本文为LOVELYJF原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。