반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- string
- CSS
- Java
- 테이블
- 이클립스
- CMD
- 이탈리아
- windows
- 문자열
- Array
- js
- date
- Button
- Eclipse
- input
- 인텔리제이
- vscode
- Maven
- Visual Studio Code
- ArrayList
- IntelliJ
- table
- html
- javascript
- 자바스크립트
- json
- 배열
- 정규식
- 자바
- list
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Collections.swap()으로 리스트 요소 교환하기 본문
리스트의 특정 위치에 있는 두 값을 서로 바꾸고 싶을 때, 보통 임시 변수를 두고 교환합니다.
하지만 자바의 Collections.swap()
메서드를 사용하면 한 줄로 간단히 처리할 수 있습니다.
이 메서드는 리스트의 두 요소를 서로 교환(swap)할 때 사용합니다.
1. 기본 사용법
import java.util.*;
public class SwapExample1 {
public static void main(String[] args) {
List<String> colors = new ArrayList<>(Arrays.asList("red", "blue", "green", "yellow"));
Collections.swap(colors, 0, 2); // 0번째와 2번째 요소 교환
System.out.println(colors);
}
}
실행 결과
[green, blue, red, yellow]
👉 "red"
와 "green"
의 위치가 바뀌었습니다.
2. 숫자 리스트에서 사용하기
import java.util.*;
public class SwapExample2 {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.swap(numbers, 1, 3); // 1번 인덱스와 3번 인덱스 교환
System.out.println(numbers);
}
}
실행 결과
[1, 4, 3, 2, 5]
👉 인덱스 1
(값: 2)와 인덱스 3
(값: 4)이 교환되었습니다.
3. 잘못된 인덱스를 지정한 경우
만약 리스트의 범위를 벗어난 인덱스를 지정하면 IndexOutOfBoundsException
이 발생합니다.
import java.util.*;
public class SwapExample3 {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
// 존재하지 않는 인덱스 5를 지정
Collections.swap(fruits, 0, 5);
}
}
실행 결과 (예외 발생)
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 5, Size: 3
👉 따라서 항상 리스트의 크기 안에서만 사용해야 합니다.
4. 활용 예시
- 리스트의 순서를 바꾸는 간단한 로직 구현
- 버블 정렬 같은 교환 정렬 알고리즘 구현할 때
- 카드 게임에서 특정 두 장의 카드를 바꿀 때
5. 정리
Collections.swap(List<?> list, int i, int j)
👉 리스트list
의i
번째 요소와j
번째 요소를 교환- 인덱스 범위를 벗어나면
IndexOutOfBoundsException
발생 - 정렬 알고리즘이나 게임 로직에서 유용
👉 두 요소의 위치를 바꿀 때는 Collections.swap()
을 쓰면 깔끔하다!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Collections.unmodifiableList()로 읽기 전용 리스트 만들기 (0) | 2025.09.05 |
---|---|
[Java 기초] Collections.replaceAll()으로 리스트 요소 일괄 교체하기 (1) | 2025.09.04 |
[Java 기초] Collections.max(), Collections.min()으로 최대/최소값 찾기 (0) | 2025.09.03 |
[Java 기초] Collections.frequency()로 리스트에서 요소 개수 세기 (0) | 2025.09.03 |
[Java 기초] Collections.shuffle()로 리스트 무작위 섞기 (0) | 2025.09.02 |
Comments