본문 바로가기

Language/JAVA

[JAVA] 배열 합치기

1. 반복문

합칠 두 배열의 크기만큼의 새로운 배열을 만들어, 배열의 값을 하나씩 넣어주는 방법

 

import java.util.Arrays;
import java.util.Scanner;

public class example {
    public static void main(String args[]) {
        int[] arr1 = {1, 2, 3, 4};
        int[] arr2 = {5, 6, 7, 8};
        int[] arr3 = new int[arr1.length + arr2.length];
        int index = 0;

        for(int num: arr1) {
            arr3[index++] = num;
        }

        for(int num: arr2) {
            arr3[index++] = num;
        }

        System.out.println("arr1: " + Arrays.toString(arr1));
        System.out.println("arr2: " + Arrays.toString(arr2));
        System.out.println("arr3: " + Arrays.toString(arr3));
    }
}

결과

 

 

 

 

 

2. System 클래스의 arraycopy 메서드

Object src

- 값이 존재하는 배열로, 새로운 배열에 값을 복사할 두 개의 배열을 말합니다.

 

int srcPos

- 값을 복사할 배열에서 복사할 값들의 시작 위치를 설정합니다.

- 0으로 설정하는 경우 0번째 인덱스부터 시작합니다.

 

Object dest

- 첫 번째 매개변수 Object src에서 복사된 값이 들어갈 새로운 배열을 말합니다.

 

int destPos

- 복사된 배열 값들이 새로운 배열의 몇 번째 인덱스부터 차례대로 들어가는지, 그 시작 위치를 말합니다.

- 0으로 설정하는 경우 0번째 인덱스부터 값이 할당됩니다.

 

int length

- 값을 복사할 배열에서 복사할 값들의 개수를 설정합니다.

- int srcPos부터 length개의 값들이 Object dest로 복사됩니다.

 

 

import java.util.Arrays;
import java.util.Scanner;

public class example {
    public static void main(String args[]) {
        int[] arr1 = {1, 2, 3, 4};
        int[] arr2 = {5, 6, 7, 8};
        int[] arr3 = new int[arr1.length + arr2.length];
        System.arraycopy(arr1, 0, arr3, 0, arr1.length);
        System.arraycopy(arr2, 0, arr3, arr1.length, arr2.length);

        System.out.println("arr1: " + Arrays.toString(arr1));
        System.out.println("arr2: " + Arrays.toString(arr2));
        System.out.println("arr3: " + Arrays.toString(arr3));
    }
}

결과