[JAVA8] IntStream , Lamda 활용

IntStream과 람다식 응용하기

import java.util.Collections;
import java.util.List;
import java.util.function.IntPredicate;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

class IntStream_Ex {
    public static void main(String[] args) {
        IntStream.range(0, 10).forEach((int value) -> System.out.println(value));
        System.out.println("MAX with Lamda: "+IntStream.range(0, 10).max().getAsInt());


        int a = 0;
        int b = 10;
        IntPredicate predicate = i -> i >= 0;
        // 모든 엘리먼트 조건식 검사 > boolean 리턴
        System.out.println(IntStream.range(a, b).allMatch(predicate));

        // 하나라도 조건식 맞는지 검사 > boolean 리턴
        IntPredicate predicate2 = i -> i < 0;
        System.out.println(IntStream.range(a, b).anyMatch(predicate2));

        // 평균값
        System.out.println(IntStream.range(a, b).average());

        // Stream<Intger> 형태로 변환
        System.out.println(IntStream.range(a, b).boxed().toArray()[0]);

        // 스크림 갯수 반환
        System.out.println(IntStream.range(a, b).count());

        // Stream내 중복제거
        IntStream stream = IntStream.of(1,1,2,2,3,3);
        stream.distinct().forEach((int value) -> System.out.println(value));
        System.out.println();


        //필터링 조건걸기
        IntStream.range(a,b).filter(i -> i>=5).forEach((int value) -> System.out.println(value));
        System.out.println();

        int[] unSortedInt = {1,3,2,5,4};
        // 소팅하기(오름차순)
        IntStream.of(unSortedInt).sorted().forEach((int value) -> System.out.println(value));

        // 소팅하기(역순)
        IntStream.of(unSortedInt).boxed().sorted(Collections.reverseOrder()).forEach(System.out::println);

        System.out.println("===== IntStream > Array =====");

        // Array로 변환
        int[] intArr = IntStream.of(unSortedInt).sorted().toArray();
        for(int i=0; i< intArr.length; i++){
            System.out.println(intArr[i]);
        }

        // List로 변환
        System.out.println("===== IntStream > List =====");
        List<Integer> arrList = IntStream.of(unSortedInt).sorted().boxed().collect(Collectors.toList());
        arrList.forEach(i -> {
            System.out.print(i);
            System.out.println("");
        });

    }
}

 

You may also like...

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.