• java8 过滤器用法


    过滤器可以非常方便的处理List中的数据关于筛选,搜索等场景。详见代码

     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 import java.util.List;
     4 import java.util.stream.Collectors;
     5 
     6 public class FilterJava {
     7     private String name;
     8     private int age;
     9 
    10     public String getName() {
    11         return name;
    12     }
    13 
    14     public void setName(String name) {
    15         this.name = name;
    16     }
    17 
    18     public int getAge() {
    19         return age;
    20     }
    21 
    22     public void setAge(int age) {
    23         this.age = age;
    24     }
    25 
    26     public FilterJava(String name, int age){
    27         this.name=name;
    28         this.age=age;
    29     }
    30 
    31     public static void main(String[] args) {
    32 //        FilterJava filterJava1 = new FilterJava("wq",18);
    33 //        FilterJava filterJava2 = new FilterJava("ws",20);
    34         FilterJava[] filterJavas = {new FilterJava("wq",18),new FilterJava("wq",20)};
    35         List<FilterJava> ls = Arrays.asList(filterJavas);
    36 
    37 
    38 
    39         //一个条件筛选
    40         FilterJava result1 = ls.stream().filter(p->"wq".equals(p.getName()))
    41                 .findAny().orElse(null);
    42         System.out.println(result1.getName());
    43 
    44         //多条件筛选,orElse中表示,若没有找到符合筛选条件的则返回这个对象
    45         FilterJava result2 = ls.stream().filter(p->"wq1".equals(p.getName()) && 18==p.getAge()).
    46                 findAny().orElse(new FilterJava("doudi",200));
    47 
    48         System.out.println(result2.getName());
    49 
    50         //使用map收集
    51         String name  = ls.stream().filter(p->"wq".equals(p.getName())).map(FilterJava::getName)
    52                 .findAny().orElse("");
    53 
    54         System.out.println("==========");
    55         System.out.println(name);
    56 
    57         List<String> names = ls.stream().filter(p->"wq".equals(p.getName())).map(FilterJava::getName)
    58                 .collect(Collectors.toList());
    59         names.forEach(System.out::println);
    60 
    61         List ls2 = Arrays.asList(new String[]{"1", "2", "3"});
    62 
    63 
    64         for(Object l1 : ls2){
    65             System.out.println(l1);
    66         }
    67 
    68         //lambda表达式写法,等同于上面foreach
    69         ls2.forEach(System.out::println);
    70 
    71     }
    72 }
  • 相关阅读:
    [LeetCode] Word Break 解题思路
    [LeetCode] Longest Valid Parentheses 解题思路
    [LeetCode] Largest Rectangle in Histogram 解题思路
    新博客
    正在学习的Angularjs包裹的插件
    Markdown
    Markdown 基础
    Angular docs
    npm-link
    webpack-hot-middleware 用于 livereload
  • 原文地址:https://www.cnblogs.com/zhoufankui/p/12214336.html
Copyright © 2020-2023  润新知