>  기사  >  Java  >  Java에서 배열을 뒤집는 방법은 무엇입니까?

Java에서 배열을 뒤집는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-05-23 21:58:34977검색

1. 질문

입력 : 1, 2, 3, 4, 5 출력 : 5, 4, 3, 2, 1

입력 : 10, 20, 30, 40 출력 : 40, 30, 20, 10

2. 방법

방법 1: 임시 배열

  1. 을 사용하여 배열의 크기와 배열의 요소를 입력합니다.

  2. 배열(예: arr) 및 배열 크기(예: n)와 같은 매개변수를 허용하는 reverse 함수를 고려하세요.

  3. 함수 내부에는 새 배열(첫 번째 배열의 배열 크기인 arr)이 있습니다. )이 초기화됩니다.

  4. Array arr[]은 첫 번째 요소부터 반복을 시작하고 배열 arr[]의 각 요소는 뒤에서 새 배열에 배치됩니다. 즉, 새 배열은 마지막 요소부터 반복을 시작합니다.

  5. 이런 방식으로 arr[] 배열의 모든 요소가 새 배열에 역순으로 배치됩니다.

public class reverseArray {
    // function that reverses array and stores it 
    // in another array
    static void reverse(int a[], int n)
    {
        int[] b = new int[n];
        int j = n;
        for (int i = 0; i < n; i++) {
            b[j - 1] = a[i];
            j = j - 1;
        }
        // printing the reversed array
        System.out.println("Reversed array is: \n");
        for (int k = 0; k < n; k++) {
            System.out.println(b[k]);
        }
    }
    public static void main(String[] args)
    {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr, arr.length);
    }
}

결과는 다음과 같습니다.

Reversed array is: 
50
40
30
20
10

방법 2: swap

을 사용하여 배열 요소를 교체합니다. 첫 번째 요소가 마지막 요소로 교체됩니다. 두 번째 요소는 마지막 요소와 교체됩니다. 예를 들어, [1, 2, 3, ..., n-2, n-1, n] 요소가 있는 배열이 있다고 가정합니다. 1과 n, 2와 n-1, 3과 n-2 등을 하나씩 교환합니다.

public class Test {
    public static void main(String[] args) {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr,arr.length);
    }
    static void reverse(int[] a,int n) {
        int i, k, t;
        for (i = 0; i < n / 2; i++) {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
        System.out.println("Reversed array is: \n");
        for (k = 0; k < n; k++) {
            System.out.println(a[k]);
        }
    }
}

결과는 다음과 같습니다.

Reversed array is: 
50
40
30
20
10

방법 3: Collections.reverse() 메서드 사용

java.util.Collections.reverse(List list) 메서드는 주어진 목록을 반전시킵니다.. 배열을 목록으로 변환한 다음 Collections.reverse(list)를 호출하여 배열을 뒤집습니다.

public class Test {
    public static void main(String[] args) {
        Integer [] arr = {10, 20, 30, 40, 50};
        reverse(arr);
    }
    static void reverse(Integer[] a) {
        Collections.reverse(Arrays.asList(a));
        System.out.println(Arrays.asList(a));
    }
}

결과는 다음과 같습니다.

[50, 40, 30, 20, 10]

방법 4: StringBuilder.append() 메서드 사용

문자열 배열을 사용하는 경우 StringBuilder를 사용하고 길이부터 시작하여 각 배열 요소에 for 루프를 추가할 수 있습니다. 의 경우 StringBuilder를 문자열로 변환한 다음 다시 배열로 분할합니다.

public class Test {
    public static void main(String[] args) {
        String[] arr = {"Hello", "World"};
        StringBuilder reversed = new StringBuilder();
        for (int i = arr.length-1; i >= 0; i--) {
            reversed.append(arr[i]).append(" ");
        };
        String[] reversedArray = reversed.toString().split(" ");
        System.out.println(Arrays.toString(reversedArray));
    }
}

결과는 다음과 같습니다

[World, Hello]

위 내용은 Java에서 배열을 뒤집는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제