Java에서 int / String 배열을 반전시키는 방법

이 튜토리얼에서는 Java.

배열을 뒤집는 것이 매우 쉬워 보일 수 있습니다! 같은 크기의 테이블을 만들고 원본 테이블을 처음부터 끝까지 살펴보고 새 테이블을 채우기만 하면 되기 때문에 이렇게 보입니다. 요소가 원래 배열의 역순인 배열이 있었지만 문제는 O (n) 복잡성이 매우 큰 경우 많은 공간을 차지하는 추가 배열을 사용했다는 것입니다. 보드에 100만 개의 항목이 포함되어 있고 공간이 충분하지 않다고 상상해 보십시오. 문제는 많은 공간을 차지하는 추가 테이블에 의존하지 않고 그림을 뒤집을 수 있습니까? 여기서 해결책의 핵심은 임시 버퍼를 사용하지 않고 배열을 반전시키는 데 필요한 것을 이해하는 것이지만 변수를 사용하여 값을 저장할 수 있습니다.

java.util.Arrays 또는 java.util.Collections.

에 도달할 때까지 항목을 교환하는 수동 방법으로 돌아가기 중간점은 다음과 같이 덮어 쓰지 않도록 매번 임시 변수에 현재 값을 저장합니다 :

public class reverse_Array {

public static void main (String [] args) {
int [] 배열 = {1, 2, 3, 4};

//배열의 정수 표시
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
//배열 요소 반전
for(int i = 0; i < array.length / 2; i++)
{
int temp = array[i];
배열[i] = 배열[array.length - i - 1];
array[array.length - i - 1] = temp;
}
//반전된 배열의 정수 표시
System.out.println("inverted array");
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
}
}
이 코드를 컴파일하고 실행하면 다음과 같은 결과가 발생합니다.

1
2
3
4
array
4
3
2
1
왜 중간에 멈추나요? 중간에 도달하면 모든 값을 반전하고 배열의 끝까지 계속하면 각 요소를 두 번 반전하면 결과가 동일하기 때문입니다.

Invert an array in Java with the ArraysUtils.reverse()

공용 lang의 Java 라이브러리를 사용하여 java.lang API에는 문자열 조작, 숫자 메서드와 같은 메서드가 포함되어 있습니다. download java.lang 를 클릭하십시오. 프로젝트로 가져옵니다.

방법을 쉽게 사용할 수 있습니다.  ArrayUtils.reverse (< / span>int [] 배열)

import java.util.Arrays; 
import org.apache.commons.lang3.ArrayUtils;

public class reverse_array_strings {

public static void main(String[] args) {
String[] string_array ={"a", "b", "c"};

//배열 문자열 표시
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
//array
ArrayUtils.reverse(string_array);

//반전된 배열의 문자열 표시
System.out.println("inverted array");
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
}
}
이 코드가 출력으로 제공하는 내용은 다음과 같습니다.

a
b
c
array
c
b
a
대부분의 경우, 라이브러리를 쉽게 사용하면 실수를 방지할 수 있고 편집자가 테스트하기 때문에 라이브러리를 쉽게 사용하는 것이 더 빠르고 안전합니다.

Collections.reverse()

이 방법은 java object collections에만 작동하므로 배열을 java.util.List Arrays.asList() 그런 다음 Collections.reverse() 마지막으로 toArray () < / span >.

import java.util.Arrays; 
import java.util.Collections;
import java.util.List;
public class reverse_array_list {
public static void main(String[] args) {
Object[] string_objects ={"abc", 12, 54, 'c', 99};

//배열 문자열 표시
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}

//배열을 List
목록으로 변환합니다< 개체> 목록 = Arrays.asList(string_objects);
//배열의 객체 반전
Collections.reverse(list);
//목록에서 배열 가져오기
string_objects = list.toArray();

//반전된 배열의 문자열을 표시합니다
System.out.println("inverted array of objects");
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
}
}
결과:

abc
12
54
c
99
반전된 객체의 배열
99
c
54
12
abc
References:
Stackoverflow: Java에서 int 배열을 어떻게 뒤집나요?
Commons lang: Java.lang API
Java에서 배열을 뒤집는 방법은 무엇입니까?