728x90
자바 스트림(Stream)이란, Java 8부터 추가된 기술로 람다(Lambda) 를 활용해 배열과 컬렉션을 함수형으로 간단하게 처리할 수 있는 기술입니다. 아래는 간단한 사용법에 대해 알아보겠습니다.
1. foreach
// 컬렉션 출력
List<String> list = new ArrayList();
list.add("Element1");
list.add("Element2");
list.add("Element3");
list.forEach(System.out::println)
// 리스트 출력
int result[] = {1,2,3};
Arrays.stream(result).forEach(i -> System.out.print(i+""));
2. sum
// 각 자리수의 합
int n = 123;
int result = String.valueOf(n).chars().map(Character::getNumericValue).sum();
System.out.println(result);
3. filter
Arrays.stream(myString.split("[A-Z|a-z]"))
.filter(s -> !s.isEmpty()).mapToInt(Integer::parseInt).sum()
4. reduce
BigInteger n = IntStream
.rangeClosed(1, balls)
.mapToObj(BigInteger::valueOf)
.reduce(BigInteger.ONE, BigInteger::multiply)
5. sort
Arrays.sort(strings, (a, b) -> {
char charA = a.charAt(n);
char charB = b.charAt(n);
if (charA == charB) {
return a.compareTo(b);
} else {
return Character.compare(charA, charB);
}
});
6. groupingBy
Map<Integer, Long> map = Arrays.stream(array)
.mapToObj(i -> i)
.collect(
Collectors.groupingBy(
Function.identity(), Collectors.counting()
)
);
감사합니다.
728x90
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 디자인 패턴 종류 (0) | 2024.05.20 |
---|---|
[Java] 이분탐색 예제 (0) | 2024.05.13 |
[Java] JVM GC 프로세스 (0) | 2024.05.13 |
[Java] 객체지향(OOP) 설계와 특징 (0) | 2024.01.15 |
[Java] Enum 활용 (0) | 2023.07.14 |