배열이 주어지면 작업은 Java에서 주어진 배열을 뒤집는 것입니다.
예:
숨겨진 앱을 공개하는 방법
Input : 1, 2, 3, 4, 5 Output :5, 4, 3, 2, 1 Input : 10, 20, 30, 40 Output : 40, 30, 20, 10>
배열의 기본 사항에 대해 알아보려면 배열 데이터 구조를 참조하세요.
구혼
Java에서 배열을 뒤집는 방법에는 여러 가지가 있습니다. 이것들은:
- 임시 배열 사용
- 스와핑 사용
- Collections.reverse() 메소드 사용
- StringBuilder.append() 메서드 사용
1. 임시 배열 사용
그만큼 첫 번째 방법 다음과 같다:
- 배열의 크기와 배열의 요소를 입력받습니다.
- 배열(arr)과 배열의 크기(n)와 같은 매개변수를 취하는 reverse 함수를 생각해 보세요.
- 함수 내에서 새 배열(첫 번째 배열의 배열 크기인 arr)이 초기화됩니다. arr[] 배열은 첫 번째 요소부터 반복되고, 배열 arr[]의 각 요소는 새 배열의 뒤에서부터 배치됩니다. 즉, 새 배열은 마지막 요소부터 반복됩니다.
- 이런 방식으로 배열 arr[]의 모든 요소가 새 배열에 반대로 배치됩니다.
- 또한 처음부터 새 배열을 반복하고 배열의 요소를 인쇄할 수 있습니다.
자바
// Basic Java program that reverses an array> > 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 b[j - 1] = a[i]; j = j - 1; } // printing the reversed array System.out.println('Reversed array is:
'); for (int k = 0; 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. 스와핑 사용
그만큼 두 번째 방법 배열 입력 및 인쇄에 유사한 코드를 사용합니다. 하지만 위의 방법처럼 새로운 배열을 생성하지는 않습니다. 대신 원래 배열 자체를 뒤집습니다. 이 방법에서는 배열의 요소를 교환합니다. 첫 번째 요소가 마지막 요소로 교체됩니다. 두 번째 요소는 마지막 요소 중 하나를 제외한 나머지 요소와 교체됩니다.
예를 들어 배열 [1, 2, 3, …., n-2, n-1, n]을 생각해 보세요. 1을 n으로, 2를 n-1로, 3을 n-2로 교환합니다.
자바
// Java Program that reverses array> // in less number of swaps> > public> class> arrayReverse {> > >// function swaps the array's first element with last> >// element, second element with last second element and> >// so on> >static> void> reverse(>int> a[],>int> n)> >{> >int> i, k, t;> >for> (i =>0>; i 2; i++) { t = a[i]; a[i] = a[n - i - 1]; a[n - i - 1] = t; } // printing the reversed array System.out.println('Reversed array is:
'); for (k = 0; k System.out.println(a[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>
3. Collections.reverse() 메소드 사용
그만큼 세 번째 방법 기능을 사용하는 것입니다 java.util.Collections.reverse(목록 목록) 방법. 이 메서드는 지정된 목록의 요소를 반대로 바꿉니다. 따라서 먼저 다음을 사용하여 배열을 목록으로 변환합니다. java.util.Arrays.asList(배열) 그런 다음 목록을 뒤집습니다.
자바
// Reversing an array using Java collections> import> java.util.*;> > public> class> reversingArray {> > >// function reverses the elements of the array> >static> void> reverse(Integer a[])> >{> >Collections.reverse(Arrays.asList(a));> >System.out.println(Arrays.asList(a));> >}> > >public> static> void> main(String[] args)> >{> >Integer [] arr = {>10>,>20>,>30>,>40>,>50>};> >reverse(arr);> >}> }> |
이진 트리 대 bst
>
>산출
[50, 40, 30, 20, 10]>
4. StringBuilder.append() 메소드 사용
로서 네 번째 방법 , 문자열 배열로 작업하는 경우 StringBuilder를 사용하고 배열 길이에서 감소하는 for 루프로 각 배열 요소를 추가하고 StringBuilder를 문자열로 변환한 다음 다시 배열로 분할할 수 있습니다.
자바
// Java Program for Reversing an array using StringBuilder> > import> java.util.Arrays;> > class> GFG {> >public> static> void> main (String[] args) {> >String[] arr = {>'Hello'>,>'World'>};> >StringBuilder reversed =>new> StringBuilder();> > >for> (>int> i = arr.length; i>>0>; i--) {> >reversed.append(arr[i ->1>]).append(>' '>);> >};> > >String[] reversedArray = reversed.toString().split(>' '>);> > >System.out.println(Arrays.toString(reversedArray));> >}> }> |
jsp 자바 포인트
>
>산출
[World, Hello]>