Java

[Java] 배열(Array) 뒤집는 방법: 배열 리버스(reverse) 예제

Java에서 배열을 어떻하면 뒤집기(reverse)를 할 수 있을까요?  

배열을 뒤집는 방법에는 여러가지가 있습니다. 그 중에 첫 번째 방법은 라이브러리을 사용하지 않고 배열을 뒤집는 것입니다.  두번째 방법은 Collection 클래스의 reverse()메서드를 사용하는 방법입니다.
 

1. 라이브러리를 사용하지 않고 배열을 뒤집는 방법

아래 코드 스니펫을 보시면 이해가 되실거에요. 이러한 방법을 습득 후 라이브러리를 사용하게 되면 작업을 훨씬 쉽게 만드는 방법이 있음을 알게 되고 코딩 능력 향상에 도움이 됩니다. 아래 샘플 코드는 for문을 사용하여 배열의 절반(arr.lenath/2)을 반복하면서 리버스를 하는 예제 입니다.

package edu.sample;

import java.util.Arrays;

public class Tutorial {

	public static void main(String[] args) {
		String arr[] = {"korea","american","japan","china"};
		
		for(int i=0; i<arr.length/2; i++){ 
			String temp = arr[i]; 
			arr[i] = arr[arr.length -i -1]; 
			arr[arr.length -i -1] = temp; 
		}

		System.out.println("리버스 후 배열: " + Arrays.toString(arr) );

 
	}

}

[실행결과]

리버스 후 배열: [china, japan, american, korea]

 

 

또 다른 예제를 살펴보세요.

package edu.sample;

import java.util.Arrays;

public class Tutorial {

	public static void main(String[] args) {
		//String arr[] = {"korea","american","japan","china"};
		int[] a = new int[]{1,2,3,4,5,6,10,12,11,14}; 
		int[] b = new int[a.length]; 
		for(int i=0;i<a.length;i++){
			int temp=a[i];
			b[i]=a[a.length-i-1];
			a[i]=temp;
			//System.out.println(b[i]);
		}		
		System.out.println("리버스 후 배열: " + Arrays.toString(b) );
	}

}

 

[실행결과]

리버스 후 배열: [14, 11, 12, 10, 6, 5, 4, 3, 2, 1]

 

2. Java에서 ArrayList를 사용하여 배열을 뒤집는 방법

Java에서 배열을 반전시키는 또 다른 간단한 방법은 먼저 배열을 List로 변환 한 다음  Collections.reverse () 메서드를 사용하여 ArrayList를 리버스 하는 것입니다. 이 메서드를 사용하여 int , String  또는 모든 유형의 배열을 뒤집을 수 있습니다. Java에서 문자열 배열을 뒤집는 예를 살펴 보겠습니다.

package edu.sample;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Tutorial {

	public static void main(String[] args) {
		String arr[] = {"korea","american","japan","china"};
		
		//정렬 전
		System.out.println("리버스 전 배열: " + Arrays.toString(arr));
 
 		List<String> listItem = Arrays.asList(arr); 
        Collections.reverse(listItem); 
        String[] reversed = listItem.toArray(arr); 
        System.out.println("리버스 후 배열: " + Arrays.toString(reversed) );

	}

}

[코드 실행 결과]

리버스 전 배열: [korea, american, japan, china]
리버스 후 배열: [china, japan, american, korea]

List 클래스의 toArray () 메서드를 사용해서 배열의 값(요소)의 순서가 반전되는 것을 볼 수 있습니다.

 

Leave a Reply

error: Content is protected !!