Stream API를 활용해보자

2025. 1. 8. 14:04·개발/Java

스트림(Stream API) 활용기

스트림을 활용하면 얼마나 코드가 짧아지는가.
그간 배우기를 두려워하면서 람다만 나오면 뒤로 주춤하던 내모습
조금은 더 친숙해 지도록 노력이 필요할 것같다.

기존 사용 내역

 public String randomNumberCreate() {
        List<Integer> computer = new ArrayList<>();
        while (computer.size() < 3) {
            int randomNumber = Randoms.pickNumberInRange(1, 9);
            if (!computer.contains(randomNumber)) {
                computer.add(randomNumber);
            }
        }

        StringBuilder stringBuilder = new StringBuilder(3);
        for (Integer i : computer) {
            stringBuilder.append(i);
        }

        return stringBuilder.toString();
    }    
  • 랜덤 숫자 3종류를 받아 ArrayList에 저장한다
  • 빌더를 생성하여 arraytList에 생성된 자료를 저장한다
  • 그리고 빌더를 리턴한다.

Stream을 이용해보자

return Stream.generate(() -> Randoms.pickNumberInRange(1, 9)) // 1~9의 숫자의 랜덤 숫자를 배분한다
                .distinct()// 중복을 제거 해준다
                .limit(3)//3개까지만 생성해준다
                .map(Object::toString) // Integer -> String 변환
                .collect(Collectors.joining()); // 값을 붙여준다. -> 최종

스트림을 활용하면 보다 함수 스타일로, 간결하게 표현할 수 있음을 알 수 있다.

혹시 더 Stream에 대해 더 공부하고 싶다면 [모던 자바 인 액션]이라는 책을 추천한다.

끝.

'개발 > Java' 카테고리의 다른 글

[JAVA] DI 예제 구현 그리고 UML  (0) 2024.12.29
[IDE - IntelliJ] auto Parameter Info (매개변수 정보) 팝업 숨기기  (0) 2024.11.24
[Java] 다형성 그리고 Interface와 친해지고싶어요.  (2) 2024.11.19
자바의 정석 정리 Ver 1.0 (나만 알아볼수 있음)  (0) 2024.10.28
프로그램, 객체, 클래스, 메서드  (0) 2024.10.07
'개발/Java' 카테고리의 다른 글
  • [JAVA] DI 예제 구현 그리고 UML
  • [IDE - IntelliJ] auto Parameter Info (매개변수 정보) 팝업 숨기기
  • [Java] 다형성 그리고 Interface와 친해지고싶어요.
  • 자바의 정석 정리 Ver 1.0 (나만 알아볼수 있음)
NextHeaven
NextHeaven
취미로 사진을찍고 넋두리를 공유하고자 합니다.
  • NextHeaven
    Nextheaven
    NextHeaven
  • 전체
    오늘
    어제
    • 분류 전체.. (34)
      • 일기 (25)
        • 2021 (8)
        • 2022 (5)
        • 2023 (0)
        • 2024 (12)
        • 2025 (0)
      • 개발 (9)
        • Java (6)
        • DB (2)
        • Tip (1)
  • 블로그 메뉴

    • 홈
    • 나라는 사람은
    • 방명록
  • 태그

    남궁성
    일기
    백엔드 부트캠프
    java
    백엔드
    a7m3
    부트캠프
    intellij
    일하는 마음
    남궁성 백엔드 부트캠프
  • hELLO· Designed By정상우.v4.10.1
NextHeaven
Stream API를 활용해보자
상단으로

티스토리툴바