일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- list
- Java
- ArrayList
- Files
- Visual Studio Code
- CMD
- table
- 자바
- html
- CSS
- javascript
- Maven
- Eclipse
- 인텔리제이
- vscode
- date
- js
- IntelliJ
- input
- 자바스크립트
- Array
- 이클립스
- json
- string
- 이탈리아
- 배열
- 문자열
- windows
- Button
- 테이블
- Today
- Total
어제 오늘 내일
[Java] 배열 거꾸로 변환하는 2가지 방법 본문
Java 배열의 원소들을 거꾸로(역순으로) 변환하는 방법을 알아보도록 하겠습니다.
반복문 사용하기
코드
import java.util.Arrays;
public class ArrayReverse {
public static void main(String[] args) {
// 원본 배열
int[] arr = { 1, 2, 3, 4, 5 };
// 거꾸로 배열
int[] reverseArr = new int[5];
// 원본배열(arr)의 마지막 인덱스(int i = arr.length - 1)부터 탐색하여
// 거꾸로 배열(reverseArr)에 순서대로 값을 세팅한다.
for (int i = arr.length - 1, j = 0; i >= 0; i--, j++) {
reverseArr[j] = arr[i];
}
// 원본 배열과 거꾸로 배열의 값을 출력한다.
System.out.println("arr : " + Arrays.toString(arr));
System.out.println("reverseArr : " + Arrays.toString(reverseArr));
}
}
결과
arr : [1, 2, 3, 4, 5]
reverseArr : [5, 4, 3, 2, 1]
반복문을 사용하여 원본 배열(arr)의 원소들을 거꾸로 배열(reverseArr)로 뒤집었습니다.
원본 배열의 뒤에서부터 값을 읽어서,
이 값을 순서대로 거꾸로 배열(reverseArr)에 넣어주었습니다.
출력 결과를 보면, reverseArr는 원본 배열(arr)의 뒤집어진 형태인 것을 알 수 있습니다.
Collection.reverse()
코드
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class ArrayReverse {
public static void main(String[] args) {
// 1. 원본 배열
Integer[] arr = { 1, 2, 3, 4, 5 };
// 2. 원본 배열을 List로 변환
List<Integer> list = Arrays.asList(arr);
// 3. Collections.reverse() 메소드를 사용하여 list를 거꾸로 변환
Collections.reverse(list);
// 4. 리스트를 배열로 변환
Integer[] reverseArr = list.toArray(arr);
// 5. 결과 출력
System.out.println("arr : " + Arrays.toString(arr));
System.out.println("reverseArr : " + Arrays.toString(reverseArr));
}
}
결과
arr : [5, 4, 3, 2, 1]
reverseArr : [5, 4, 3, 2, 1]
이 예제는 조금 복잡합니다.
1. Integer[] arr = { 1, 2, 3, 4, 5 };
거꾸로 뒤집을 원본 배열입니다.
2. List<Integer> list = Arrays.asList(arr);
원본 배열을 Arrays.asList() 함수의 파라미터로 전달하여
List 형태로 변경하였습니다.
3. Collections.reverse(list);
list를 Collections.reverse() 함수의 파라미터로 전달하여,
list를 거꾸로 변환하였습니다.
4. list.toArray(arr);
list를 다시 배열 형태로 변환하였습니다.
5. 출력
원본 배열인 arr와
거꾸로 변환된 배열 list를 출력하였습니다.
그런데, 원본 배열인 arr의 값도 거꾸로 변환된 것을 볼 수 있습니다.
이것은, 2번 스텝에서
Arrays.asList(arr)를 호출하여 새로운 list를 만들때,
완전히 새로운 list를 만드는 것이 아니라,
list가 arr의 주소를 참조하기 때문입니다.
따라서 list에 어떤 변화를 주면, arr도 같이 변하는 것입니다.
Java의 배열을 거꾸로 뒤집는 방법을 알아보았습니다.
'IT > Java' 카테고리의 다른 글
[Java] 가변 길이 배열 (Jagged Array) 생성, 개수 구하기 (1) | 2021.04.18 |
---|---|
[Java] 배열의 길이 구하기, length 속성 (0) | 2021.04.18 |
[Java] 배열 원소 중 최대값의 인덱스, 최소값의 인덱스 구하기 (0) | 2021.04.17 |
[Java] 배열 원소 중 최대값, 최소값 구하기 (0) | 2021.04.17 |
[Java] 배열 값으로 합계, 평균 계산하기 (0) | 2021.04.17 |