lambda 表达式 实战(List 集合过滤,以及循环List)

一 lamdba 表达式根据List集合 作为过滤条件 实战

1.1 判断一个集合的对象的id,是否存在于另一个集合id当中,如何存在,生成一个新的集合对象。

public List getFilterList(List 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

   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 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 采用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 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 getSum1(Map map1) {

      Set set=map1.keySet();

      Set set1=set.stream().filter(key ->((Integer.valueOf(key)+map1.get(key).intValue())>10)).collect(Collectors.toSet());

      return set1;

}

 

 

 

 

 

 

你可能感兴趣的:(lambda 表达式 实战(List 集合过滤,以及循环List))