Study/java

[Java] 배열 값 더하기, 자르기, 합치기 방법 정리

 

자바로 배열의 값을 더하고 합치는 방법 및 자르는 방법을 정리하였습니다.

 

배열 값 더하는 방법

배열의 값들을 모두 더하는 방법은 다음과 같습니다.

 

반복문 사용

반복문을 사용하여 값을 모두 더하는 방법입니다.

// 숫자 배열 요소를 모두 더하는 방법
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;

for (int num : numbers) { // 향상된 for문 사용
    sum += num;
}

System.out.println("배열의 합: " + sum);

// 문자열 배열 요소를 모두 더하는 방법
String[] strings = {"Hello", "World", "Java"};
String result = "";
for (String str : strings) {
    result += str + " ";
}
System.out.println("문자열 배열의 합: " + result);

반복문을 사용하여 배열의 값을 모두 더한 결과
반복문을 사용하여 배열의 값을 모두 더한 결과

 

Stream 사용

Arrays.stream() 메소드를 사용할 수도 있습니다.

// Arrays.stream() 메소드를 사용하여 배열 요소를 모두 더하는 방법
int sumOfNumbers = Arrays.stream(numbers).sum();
System.out.println("배열의 합: " + sumOfNumbers);

String sumOfStrings = Arrays.stream(strings).reduce("", (a, b) -> a + b);
System.out.println("문자열 배열의 합: " + sumOfStrings);

Arrays.stream을 사용하여 배열의 값을 모두 더한 결과
Arrays.stream을 사용하여 배열의 값을 모두 더한 결과

 

배열 자르는 방법(부분 배열을 만드는 방법)

배열을 잘라서 부분 배열을 만드는 방법입니다.

배열을 자를 때는 Arrays.copyOfRange 메소드를 사용하면 됩니다.

int[] numbers = {1, 2, 3, 4, 5};
int[] subArray = Arrays.copyOfRange(numbers, 1, 4); // 인덱스 1부터 4전까지 자름 (즉, {2, 3, 4})

System.out.println("잘린 배열: " + Arrays.toString(subArray));

Arrays.copyOfRange로 배열을 자른 결과
Arrays.copyOfRange로 배열을 자른 결과

 

 

 

 

 

 

여러 배열을 합치는 방법

두개의 배열을 하나로 합치기 위해 System.arraycopy나 Stream.concat 메소드를 사용할 수 있습니다.

 

System.copyOfRange 사용

// 배열을 합치는 방법
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};

int[] mergedArray = new int[arr1.length + arr2.length];

System.arraycopy(arr1, 0, mergedArray, 0, arr1.length);
System.arraycopy(arr2, 0, mergedArray, arr1.length, arr2.length);

System.out.println("합쳐진 배열: " + Arrays.toString(mergedArray));

System.arraycopy 메소드로 여러 배열을 합친 결과
System.arraycopy 메소드로 여러 배열을 합친 결과

 

Stream.concat 사용

int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};

int[] mergedArrayFromStream = IntStream.concat(Arrays.stream(arr1), Arrays.stream(arr2)).toArray();

System.out.println("합쳐진 배열: " + Arrays.toString(mergedArrayFromStream));

결과는 System.copyOfRange와 동일합니다.