ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA]Labmda 맛보기
    JAVA/in 기초 2016. 7. 20. 16:41

    Lambda Basic

    function has 4 things

    1. name
    2. parameter list
    3. body
    4. return type
    Thread th = new Thread(new Runnable(){
        public void run(){
            Sysout.out.println("In side Thread");
        }
    });
    th.start();
    

    lambda expression

    1. name

    1. parameter list
    2. body

    4. return type

    Thread th = new Thread(() ->Sysout.out.println("In side Thread"));
    th.start();
    

    iterators

    List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    //external iterators
    for(int i = 0; i < numbers.size(); i++){
        System.out.println(numbers.get(i));
    }
    
    //external iterators also
    for( int e : numbers){
        System.out.println(e);
    }
    
    //interal iterators
    numbers.forEach(new Consumer<Integer(){
        public void accept(Integer value){
            System.out.println(value);
        }
    });
    
    numbers.forEach((Integer value) ->System.out.println(value));
    
    numbers.forEach((value) ->System.out.println(value));
    
    //only for on parameter lambdas
    numbers.forEach(value ->System.out.println(value));
    
    numbers.forEach(System.out::println);
    
    //ANTI PATTERN :: DO NOT USE LIKE THIS!
    number.forEach(e -> {
    ...;
    ...;
    ...;
    return ... need return...;
    });
    

    Parameter

    List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    numbers.stream()
        //.map(e -> String.valueOf(e))
        .map(String::valueOf)
        .forEach(System.out::println);
    
    numbers.stream()
        .map(e -> String.valueOf(e))
        //.map(e -> e.toString())
        .map(String::toString)
        .forEach(System.out::println);
    

    Two parameter

    List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    System.out.println(
        numbers.stream()
            //.reduce(0, (total, e) -> Integer.sum(total, e)));
            .reduce(0, Integer::sum));
    );
    System.out.println(
        numbers.stream()
            .map(String::valueOf)
            //.reduce("", (carry, str) -> carry.concat(str)));
            .reduce("", String::concat));
    );
    

    Stream

    List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    //given thevalues, double the even numbers and total.
    int result = 0;
    for(int e : numbers){
        if(e % 2 == 0){
            result += e*2;
        }
    }
    System.out.println(result);
    
    System.out.println(
        numbers.stream()
            .filter(e -> e % 2 == 0)
            .mapToInt(e ->e * 2)
            //.reduce(0, Integer::sum));
            .sum();
    );
    

    출처


    Get a Test of Lambda.md



Designed by Tistory.