码迷,mamicode.com
首页 > 其他好文 > 详细

Lamba表达式的几种应用

时间:2018-03-01 20:15:52      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:列表   lte   class   使用   case   求和   ==   apr   ase   

 

public class LambdaPrac {

    /**
     * 迭代
     */
    @Test
     public void demo1(){
         List list = Arrays.asList("jinx","timo","ez");
         list.forEach(n -> System.out.println(n));
     }

    /**
     * 函数式接口Predicate
     */
    @Test
     public void demo2(){
         List<String> list = Arrays.asList("jinx","timo","ez");
         filter(list,(String str) -> str.startsWith("j"));
     }

     public static void filter(List<String> list, Predicate<String> condition){
        for(String str : list){
            if(condition.test(str)){
                System.out.println(str + " ");
            }
        }
     }

    /**
     * lambda表达式中加入predicate
     */
    @Test
     public void demo3(){
        List<String> list = Arrays.asList("jinx","timo","ez");
        Predicate<String> startWithJ = (n) -> n.startsWith("j");
        Predicate<String> fourLetterLong = (n) -> n.length() == 4;
        list.stream().filter(startWithJ.and(fourLetterLong)).forEach(n -> System.out.println(n));
     }

    /**
     * map的使用
     */
    @Test
     public void demo4(){
        List<Integer> cost = Arrays.asList(100,200,300,400,500);
        cost.stream().map((c) -> c + 100).forEach(System.out::println);
     }

    /**
     * 对列表每个元素应用函数
     */
    @Test
     public void demo5(){
         List<String> list = Arrays.asList("jinx","timo","ez");
         String s = list.stream().map(x -> x.toUpperCase()).collect(Collectors.joining(","));
         System.out.println(list.stream().count());
         System.out.println(s);
     }

    /**
     *求和
     */
    @Test
     public void demo6(){
         List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
         System.out.println(primes.stream().reduce(Integer::sum).get());
     }

    /**
     * 分组
     */
    @Test
     public void demo7(){
         List<String> list = Arrays.asList("day", "walipo", "day", "walipo", "legeand", "day", "douwbo", "day", "day");
         Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
         System.out.println(collect);
     }
}

 

Lamba表达式的几种应用

标签:列表   lte   class   使用   case   求和   ==   apr   ase   

原文地址:https://www.cnblogs.com/zhumian/p/8489337.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!