filter()
"조건에 맞는 요소 필터링"
짝수만 남기기
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> evenNumbers = numbers.stream()
.filter( n -> n % 2 == 0)
.collect(Collectors.toList());
map()
"각 요소 변환"
각 단어를 대문자로 변환
List<String> words = Arrays.asList("java", "stream", "example");
List<String> upperCaseWords = words.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
flatMap()
"중첩된 스트림 평평하게 만들기"
여러 리스트를 하나의 리스트로 합치기
List<List<String>> fruits = Arrays.asList(
Arrays.asList("apple","banana"),
Arrays.asList("cherry", "watermelon")
);
List<String> flatFruitsList = listOfLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
reduce()
"하나로 합치기"
요소 모두 더하기, 첫번쨰 인자인 0은 초기값.
int sum = Arrays.asList(1, 2, 3, 4, 5).stream()
.reduce(0,(a,b) -> a,b);
collect()
"스트림을 컬렉션으로 변환"
1. list로 바꿈
List<String> words = Arrays.asList("apple", "banana", "cherry");
List<String> wordList = words.stream()
.collect(Collectors.toList());
결과
["apple", "banana", "cherry"]
2. set은 중복을 허용하지않음
List<String> words = Arrays.asList("apple", "banana", "cherry", "apple");
Set<String> wordSet = words.stream()
.collect(Collectors.toSet());
결과
["apple", "banana", "cherry"]
3. joining(", ")은 각 요소를 쉼표와 공백(", ")으로 구분하여 하나의 문자열로 결합
List<String> words = Arrays.asList("apple", "banana", "cherry");
String result = words.stream()
.collect(Collectors.joining(", "));
결과
"apple, banana, cherry"
4. 단어의 첫 번째 문자를 기준으로 그룹화하여 Map<character, list> 형태로 반환
List<String> words = Arrays.asList("apple", "banana", "cherry", "avocado");
Map<Character, List<String>> groupedByFirstChar = words.stream()
.collect(Collectors.groupingBy(word -> word.charAt(0)));
결과
{
'a'=[apple, avocado],
'b'=[banana],
'c'=[cherry]
}
5. partitioningBy()는 조건을 기준으로 두 그룹으로 나누며,
짝수와 홀수로 구분하여 Map<boolean, list<integer="">> 형태로 반환
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
Map<Boolean, List<Integer>> partitioned = numbers.stream()
.collect(Collectors.partitioningBy(n -> n % 2 == 0));
결과
{
false=[1, 3, 5],
true=[2, 4, 6]
}
sorted()
"오름차순으로 정렬"
List<Integer> numbers = Arrays.asList(5, 3, 8, 1);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
내림차순으로 정렬하려면 Comparator.reverseOrder()
반응형
'Chapter01 > Java' 카테고리의 다른 글
[Java] Stack / Queue 사용예시 (2) | 2025.03.07 |
---|---|
[ Java ] 이중해시맵 + 예시코드 (0) | 2024.06.17 |
[ java ] 객체지향 개발 SOLID 5대 원리 + 예시코드 (1) | 2024.03.13 |
[ Java ] 클래스 정의 (0) | 2024.03.13 |
[ Java ] Overloading 개념 + 예시코드 (0) | 2023.11.07 |