Stream(3)
-
[Java] 스트림(Stream) 활용 예제
자바 스트림을 활용하여 간단한 코드를 작성해보자 예제 정의 어떤 온라인 게임에 전투력 10,000을 넘어야 입장할 수 있는 던전이 있다. 그리고 여러 명의 유저가 파티를 맺으면 전투력을 합칠 수 있다. 유저 세명이 파티를 맺었다고 했을 때 전투력 계산과 유저 검색 등에 대한 연산을 스트림을 활용하여 구현해보자. 유저에 대한 클래스를 만들고 배열로 유저를 관리한다. 파티를 맺은 유저 세명의 정보는 다음과 같다. user1 name : 몰입맨 level : 10 power : 3000 user2 name : 코딩맨 level : 20 power : 4000 user3 name : 코딩걸 level : 15 power : 3500 유저 클래스 public class User { private String na..
2022.02.26 -
[Java] 스트림(Stream) - reduce()
reduce() 연산 정의된 연산이 아닌 프로그래머가 직접 구현한 연산을 적용한다 최종 연산으로 스트림의 요소를 소모하며 연산을 수행한다 // 배열의 모든 요소의 합을 구하는 reduce() 연산 구현 Arrays.stream(arr).reduce(0, (a, b) -> a + b)); reduce() 메서드의 두 번째 요소로 전달되는 람다식에 따라 다양한 기능을 수행할 수 있다 람다식을 직접 구현하거나 람다식이 긴 경우 BinaryOperator를 구현한 클래스를 사용한다 배열 안에 있는 문자열 중 가장 긴 문자열 찾기 import java.util.Arrays; import java.util.function.BinaryOperator; // BinaryOperator를 구현한 클래스 class Com..
2022.02.26 -
[Java] 스트림(Stream)
스트림(Stream)이란? 자료의 대상과 관계없이 동일한 연산을 수행한다 배열, 컬렉션을 대상으로 연산을 수행한다 일관성 있는 연산으로 자료 처리를 쉽고 간단하게 한다 자료 처리에 대한 추상화가 구현되어있다 한번 생성하고 사용한 스트림은 재사용할 수 없다 자료에 대한 스트림을 생성하여 연산을 수행하면 스트림은 소모된다 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야 한다 만약 한번 사용한 스트림을 재사용하면 java.lang.IllegalStateException: stream has already been operated upon or closed (스트림이 이미 작동되었거나 닫혔습니다) 이렇게 에러가 나는 것을 확인할 수 있다 int[] arr = {1,2,3}; int sum = Arrays...
2022.02.24