JAVA__54_Stream_4_List

AMJ·2023년 3월 10일
0

언어_log

목록 보기
57/57

main문

class Main {
    public static void main(String[] args) {
        new ver1().run();
        System.out.printf("\n");
        new ver2().run();
        System.out.printf("\n");
        int[] arr = new int[]{33, 2, 55, 4, 51, 6, 71, 18, 29, 10};
        Object result = Arrays.stream(arr)  // 배열을 스트림형식 변환 복제품 생성 intStream
                .filter(e -> e % 2 == 0)                // 연산에 참에 해당하는 것만 남는다. 짝수만 남는다.
                .map(e -> e * 2)                       // filter되고 남은 e(요소)에 2곱을 한다.
                .boxed()                              // 오토박싱 스트림 인티저 변환 Stream<integer>
                .collect(Collectors.<Integer>toList());         // collect 라인 : 배열로 반환


        System.out.printf("%s\n", Arrays.toString(arr));
        System.out.printf("%s", result);

    }
}

List + for문

class ver1{
    public void run(){
        int[] arr ={33,2,55,4,51,6,71,18,29,10};
        List <Integer> result = new ArrayList<>();
        // filter : 짝수 추출
        for (int n : arr) if (n % 2 == 0) result.add(n);

        // map : 추출된 값에 2곱하기
        for (int i=0; i<result.size(); i++) {
            // 방식1
//            int result_value = result.get(i) * 2;
//            result.set(i,result_value);
            // 축약
            result.set( i , result.get(i)*2 );
        }

//        System.out.printf("%s", arr); // 리모콘이라 주소 출력
        System.out.printf("%s\n", Arrays.toString(arr));
        System.out.printf("%s", result);
    }
}

Stream

class ver2{

    public void run() {
        int[] arr = new int[]{33, 2, 55, 4, 51, 6, 71, 18, 29, 10};
        Object result = Arrays.stream(arr)  // 배열을 스트림형식 변환 복제품 생성 intStream
                .filter(e -> e % 2 == 0)                // 연산에 참에 해당하는 것만 남는다. 짝수만 남는다.
                .map(e -> e * 2)                       // filter되고 남은 e(요소)에 2곱을 한다.
                .boxed()                              // 오토박싱 스트림 인티저 변환 Stream<integer>
                .collect(Collectors.<Integer>toList());         // collect 라인 : 배열로 반환


        System.out.printf("%s\n", Arrays.toString(arr));
        System.out.printf("%s", result);
    }
}
profile
재미있는 것들

0개의 댓글