반응형
해당 글에서는 배열/리스트를 역순으로 재구성하는 방법에 대해서 알아봅니다.
1) 배열의 요소를 역순으로 재구성 방법
1. for문 인덱스를 활용한 방법-1
💡 배열을 역순으로 순회하면서 파라미터로 전달받은 값을 새롭게 구성한 값으로 대입하는 방법입니다.
1. 배열의 길이만큼 새로운 배열을 생성합니다.
2. for문을 이용하여 역순으로 배열을 순회합니다. 이를 이용하여 전달받은 값을 새로운 배열에 대입합니다
// 1
public static int[] reverseArray(int[] arr) {
// 1. 값이 존재하는 배열과 새로 넣으려는 배열을 선언합니다.
int[] result = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
result[i] = arr[arr.length - 1 - i];
}
return result;
}
// 2
public static int[] reverseArray(int[] arr) {
// 1. 값이 존재하는 배열과 새로 넣으려는 배열을 선언합니다.
int[] result = new int[arr.length];
// 2. arr를 앞뒤로 뒤집습니다.
for (int i = arr.length; i > 0; i--) {
result[arr.length - i] = arr[i - 1];
}
return result;
}
2. for문 인덱스를 활용한 방법 -2
💡 배열을 역순으로 순회하면서 i, j 인덱스를 감소 혹은 증감하여 새로운 배열에 대입하는 방법입니다.
1. 배열의 길이만큼 새로운 배열을 생성합니다.
2. 기존의 배열을 끝에서부터 새로운 배열의 시작까지 각각의 인덱스를 대응시켜 값을 복사합니다.
public static int[] reverseArray(int[] arr) {
int[] result = new int[arr.length];
for (int i = arr.length - 1, j = 0; i >= 0; i--, j++) {
result[j] = arr[i];
}
return result;
}
3. for문 인덱스를 활용한 방법 -3 : 반복 인덱스를 반만 수행
💡 배열을 순회하는데 반만 순회하여 새로운 값을 대입하는 방법입니다.
1. 배열의 길이를 2로 나눕니다.
2. for문을 이용하여 기존의 길이의 반만큼만 반복하며 앞과 뒤의 값을 서로 교환해 줍니다.
public static int[] reverseArray(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
return arr;
}
4. 배열을 리스트로 변환 방법
💡 배열을 리스트로 변환하여 리스트 함수를 이용하여 역순 배열 구성 후 다시 배열로 변경하는 방법입니다.
1. 기존 배열을 리스트로 변환합니다.
2. 리스트의 reverse() 함수를 이용하여 역순 배열로 변환합니다.
3. 리스트를 다시 배열로 변환하여 반환합니다.
import java.util.Collections;
import java.util.List;
import java.util.Arrays;
public static int[] reverseArray(int[] arr) {
List<Integer> list = Arrays.asList(arr);
Collections.reverse(list);
return list.toArray(new Integer[arr.length]);
}
2) 리스트의 요소를 역순으로 재구성 방법
1. Collections.reverse() 함수 이용
💡 Collections.reverse() 함수 이용
- Collections의 함수인 reverse()를 이용하여서 요소들을 역순으로 재구성합니다.
/**
* 리스트를 역순으로 재구성하는 방법
*/
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
Collections.reverse(integerList);
// List 역순 :: [9, 8, 7, 6, 5, 4, 3, 2, 1]
System.out.println("List 역순 :: " + integerList);
2. Stream API 이용
💡 Stream API 이용
- Stream API의 List.stream().sorted(Collections.reverseOrder()).collect(Collectors.toList())를 이용한 방법입니다.
/**
* 리스트를 역순으로 재구성하는 방법
*/
List<Integer> integerList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<Integer> reversed = integerList.stream()
.sorted(Collections.reverseOrder())
.collect(Collectors.toList());
System.out.println("List 역순 :: " + reversed); // List 역순 :: [9, 8, 7, 6, 5, 4, 3, 2, 1]
오늘도 감사합니다. 😀
반응형
'Java > Short 개발' 카테고리의 다른 글
[Java/Short] 약수를 구하는 다양한 방법 : int to divisor (0) | 2023.06.11 |
---|---|
[Java/Short] 두 개의 배열을 하나의 배열로 합치는 다양한 방법 (0) | 2023.06.05 |
[Java/Short] 배열/리스트의 요소를 원하는 개수만큼 재 구성 방법 (0) | 2023.05.29 |
[Java/Short] 문자열을 배열로 변환 방법 : String to String[], char[] (0) | 2023.05.27 |
[Java/Short] 배열, 리스트를 문자열로 변환 방법 : Array, List to String (0) | 2023.05.27 |