programming/JAVA
[JAVA] Stream.concat을 이용한 2개의 int 배열 합치기
LeeBorn
2021. 2. 6. 18:09
반응형
두 개의 정수 배열을 더하기 위한 방법.
int [] arr1과 int [] arr2를 더하기 위해선 여러 가지 방법이 있다.
1. int [] arr3을 arr1+arr2 사이즈로 정의해서 새로 만들고, arr1, arr2의 요소를 채워 넣어주는 방법.
2. arr1, arr2를 ArrayList로 바꾼 다음 하나씩 추가하고 다시 배열로 바꾸는 방법.
3. Stream으로 변환 후, Stream.concat을 이용해 더하고 배열로 바꾸는 방법.
등, 여러 가지 방법이 있지만, 여기서는 Stream을 이용한 방법을 정리한다.
Stream을 이용한 두 개의 배열 더하기
1. 먼저 IntStream을 import 한다.
import java.util.stream.IntStream;
2. 두 개의 배열을 IntStream으로 변환 후, concat을 사용한다.
int[] arr3 = IntStream.concat(IntStream.of(arr1), IntStream.of(arr2)).toArray();
끝.
전체 코드는 아래와 같다.
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Arrays;
import java.util.stream.IntStream;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class JavaTest {
public int[] addIntArr(int[] arr1, int[] arr2){
int[] arr3 = IntStream.concat(IntStream.of(arr1), IntStream.of(arr2)).toArray();
for(int num : arr3){
System.out.println("num : " + num);
}
return arr3;
}
@Test
public void 두개의_배열_더하기(){
int[] arr1 = {10,20,30};
int[] arr2 = {40,50,60};
int[] arr3 = addIntArr(arr1, arr2);
int[] target = {10,20,30,40,50,60};
assertEquals(true, Arrays.equals(target, arr3));
}
}
출력 결과는 아래와 같다.
-console
-test
반응형