Arrays.stream()
Java8에서 소개된 메서드로, 배열을 스트림으로 변환하는 기능을 제공한다. 이 함수를 사용하면 배열의 각 요소를 순차적으로 처리하고 중간 또는 최종 연산을 수행할 수 있다. 스트림은 함수형 프로그래밍의 개념을 도입하여 코드를 더 간결하게 작성할 수 있게 해준다.
stream() 예제 코드 1
import java.util.Arrays;
import java.util.stream.IntStream;
public class ArrayStreamExample {
public static void main(String[] args) {
int[] numbers = { 1, 2, 3, 4, 5 };
// 배열을 스트림으로 변환
IntStream stream = Arrays.stream(numbers);
// 스트림을 이용한 요소 합계 계산
int sum = stream.sum();
System.out.println("Sum: " + sum);
}
}
/* 출력
Sum: 15
*/
stream() 예제 코드 2
import java.util.Arrays;
import java.util.stream.IntStream;
public class AdvancedArrayStreamExample {
public static void main(String[] args) {
int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
// 2차원 배열을 스트림으로 변환하여 모든 요소 출력
Arrays.stream(matrix)
.flatMapToInt(row -> Arrays.stream(row))
.forEach(System.out::println);
}
}
/* 출력
1
2
3
4
5
6
7
8
9
*/
Arrays.copyOfRange()
원본 배열의 일부 요소를 선택하여 새 배열을 생성하는 기능을 제공한다. 이를 통해 수정하지 않고도 필요한 범위의 요소를 새로운 배열로 복사할 수 있다.
copyOfRange() 예제 코드 1
import java.util.Arrays;
public class ArrayCopyExample {
public static void main(String[] args) {
int[] sourceArray = { 1, 2, 3, 4, 5 };
// 배열의 인덱스 1부터 3까지의 요소를 복사하여 새 배열 생성
int[] copiedArray = Arrays.copyOfRange(sourceArray, 1, 4);
// 복사된 배열 출력
System.out.println("Copied Array: " + Arrays.toString(copiedArray));
}
}
/* 출력
Copied Array: [2, 3, 4]
*/
copyOfRange() 예제 코드 2
import java.util.Arrays;
public class ArrayCopyExample {
public static void main(String[] args) {
int[] originalArray = { 1, 2, 0, 4, 0, 6, 7, 8, 0, 10, 11 };
// 홀수만 필터링하여 새 배열 생성
int[] oddArray = Arrays.stream(originalArray)
.filter(x -> x % 2 != 0)
.toArray();
// 새 배열에서 인덱스 1과 2의 요소만 복사하여 새 배열 생성
int[] selectedArray = Arrays.copyOfRange(oddArray, 1, 3);
System.out.println("Original Array: " + Arrays.toString(originalArray));
System.out.println("Odd Array: " + Arrays.toString(oddArray));
System.out.println("Selected Array: " + Arrays.toString(selectedArray));
}
}
/* 출력
Original Array: [1, 2, 0, 4, 0, 6, 7, 8, 0, 10, 11]
Odd Array: [1, 7, 11]
Selected Array: [7, 11]
*/
'알아가기 > Java' 카테고리의 다른 글
[Java] MathContext 정확도를 조절하는 자바 클래스 (0) | 2024.01.27 |
---|---|
[Java] Arrays.stream() 및 sum() 메서드 (0) | 2024.01.25 |
[Java] 토큰으로 분리하는 StringTokenizer (0) | 2023.08.27 |
[Java] compareTo() 메서드 이해하기 (0) | 2023.07.16 |
[Java] 조회값을 반환하거나 기본값을 반환하는 getOrDefault (0) | 2023.06.15 |