자바 스트림

현곤·2024년 12월 12일
import java.util.stream.IntStream;

class Main {
    public static void main(String[] args) {
    
        // 일반적인 반복문
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }

        // 스트림 ( lambda 적용 전 )
        IntStream.rangeClosed(1, 10)		// 1부터 10까지의 물고기가 생성됨
                .forEach(e -> {				// .collect == 종단함수
                    System.out.println(e);
                });

        // 스트림 ( lambda 적용 후)
        IntStream.rangeClosed(1, 10)
                .forEach(e -> System.out.println(e));

        // 스트림 ( lambda 적용한 것을 더 줄인 것 )
        IntStream.rangeClosed(1, 10)
                .forEach(System.out::println);
    }
}

종단함수는 스트림을 끝낸 상태라는 뜻

e<< 는 엘리멘탈 (요소) 이다.

스트림 안에는 10개의 요소가 들어있는 상태 10개의 요소는 1부터 10까지다.

.forEach 안에 있는 출력 함수는 총 10번 실행된다.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        System.out.println("== 리스트 ==");
        List<Integer> ages = new ArrayList<>();

        // 리스트는 데이터 넣을 때 편하다.
        ages.add(10); // 0:철수
        ages.add(20); // 1:영수
        ages.add(30); // 2:미애

        // 리스트는 데이터 꺼낼 때 불편하다.
        System.out.println(ages.get(0)); // 철수 나이
        System.out.println(ages.get(1)); // 영수 나이
        System.out.println(ages.get(2)); // 미애 나이

        System.out.println("== 리스트 순회 ==");
        for (int i = 0; i < ages.size(); i++) {
            System.out.println(i + ":" + ages.get(i));
        }

        System.out.println("== 맵 ==");
        // 데이터를 넣은 순서를 기억하고 싶다면 LinkedHashMap을 사용하면 된다.
        Map<String, Integer> agesMap = new HashMap<>();
        // 맵은 데이터 넣을 때 불편하다.
        agesMap.put("철수", 10); // 철수:10
        agesMap.put("영수", 20); // 영수:20
        agesMap.put("미애", 30); // 미애:30

        // 맵은 데이터 꺼낼 때 편하다.
        System.out.println(agesMap.get("철수"));
        System.out.println(agesMap.get("영수"));
        System.out.println(agesMap.get("미애"));

        System.out.println("== 맵 순회 ==");
        for (String key : agesMap.keySet()) {
            System.out.println(key + ":" + agesMap.get(key));
        }
    }
}
profile
코딩하는 곤쪽이

0개의 댓글