1. 程式人生 > >Lamba表達式的幾種應用

Lamba表達式的幾種應用

n) count prim int sys ray tin sta pin

 

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表達式的幾種應用