Java의 입력/출력과 스트림
Alex Liu
Software Development Engineer
스트림으로 데이터 변환
List → Set)ArrayList, LinkedList)HashSet, TreeSet)Keys/Values를 Streams로) (예: HashMap, TreeMap)Arrays.stream() 사용)이후 예제에서 사용할 ArrayList names
names: ["Alice", "Bob", "Charlie", "David"]
Set, Collectors, Stream 클래스 임포트import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream;// 앞서 만든 `ArrayList` `names`를 `Stream`으로 변환 Stream<String> namesStream = names.stream();
[Alice, Bob, Charlie, David]// `.map()`으로 각 요소를 대문자로 변환
Stream<String> upperCaseNameStream = namesStream.map(
name -> name.toUpperCase())
[ALICE, BOB, CHARLIE, DAVID]// `.collect()`와 `Collectors.toSet()`으로 변환된 스트림 저장
upperCaseNameStream.collect(Collectors.toSet())
{CHARLIE, ALICE, BOB, DAVID}
.reduce() 메서드
.reduce()는 두 입력을 받음
0(x, y) -> x + y 의미:x: 누적 합y: 현재 요소y를 x에 더함ArrayList names를 Stream으로 변환Stream<String> stream = names.stream();
.map()으로 이름 길이로 바꾸고 .reduce()로 합산stream
.map(name -> name.length())
.reduce(0, (sum, length) -> sum + length);
20Java의 입력/출력과 스트림