스트림(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 |