반응형
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
- js
- ArrayList
- list
- 문자열
- date
- table
- input
- CMD
- vscode
- CSS
- Visual Studio Code
- Maven
- 자바
- IntelliJ
- 정규식
- Java
- 자바스크립트
- html
- 테이블
- 배열
- javascript
- Button
- windows
- 이탈리아
- string
- Array
- json
- 인텔리제이
- 이클립스
- Eclipse
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Collections.shuffle()로 리스트 무작위 섞기 본문
정렬된 리스트를 랜덤하게 섞고 싶을 때, 직접 알고리즘을 구현할 필요는 없습니다.
Java에서는 Collections.shuffle()
메서드가 리스트의 순서를 손쉽게 랜덤화해 줍니다.
이 메서드는 리스트(List)의 요소를 무작위(Random)로 섞을 때 사용합니다.
1. 기본 사용법
import java.util.*;
public class ShuffleExample1 {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.shuffle(numbers);
System.out.println(numbers);
}
}
실행 결과 (실행할 때마다 달라짐)
[3, 5, 1, 4, 2]
👉 shuffle()
은 실행할 때마다 다른 순서로 리스트를 섞습니다.
2. 문자열 리스트 섞기
문자열 리스트도 동일하게 사용할 수 있습니다.
import java.util.*;
public class ShuffleExample2 {
public static void main(String[] args) {
List<String> names = new ArrayList<>(Arrays.asList("Alice", "Bob", "Charlie", "David"));
Collections.shuffle(names);
System.out.println(names);
}
}
실행 결과 (예시)
[Charlie, Bob, David, Alice]
3. Random 객체와 함께 사용하기
Collections.shuffle()
은 기본적으로 내부에서 Random
객체를 사용합니다.
하지만 우리가 직접 Random
객체를 전달하면 시드(Seed)를 고정해서 항상 동일한 결과를 얻을 수 있습니다.
import java.util.*;
public class ShuffleExample3 {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Random random = new Random(42); // 고정된 시드
Collections.shuffle(numbers, random);
System.out.println(numbers);
}
}
실행 결과 (항상 동일)
[4, 2, 3, 5, 1]
👉 같은 시드를 쓰면 프로그램 실행할 때마다 같은 순서로 섞입니다.
4. 활용 예시
- 카드 게임에서 카드 섞기
- 랜덤 추첨 프로그램 만들기
- 리스트의 순서를 랜덤하게 바꾸는 테스트 코드 작성
5. 정리
Collections.shuffle()
은 리스트의 요소를 무작위로 섞는 메서드- 실행할 때마다 다른 순서를 만들어 줌
Random
객체를 넘겨주면 항상 같은 결과를 얻을 수 있음- 카드 게임, 추첨 기능 등 랜덤이 필요한 곳에서 유용
👉 리스트를 랜덤하게 섞고 싶을 때는 Collections.shuffle()
하나면 충분하다!
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Collections.max(), Collections.min()으로 최대/최소값 찾기 (0) | 2025.09.03 |
---|---|
[Java 기초] Collections.frequency()로 리스트에서 요소 개수 세기 (0) | 2025.09.03 |
[Java 기초] Collections.reverse()로 리스트 순서 뒤집기 (0) | 2025.09.02 |
[Java 기초] Collections.sort()로 리스트 정렬하기 (1) | 2025.09.01 |
[Java 기초] Arrays.parallelSort()로 병렬 정렬하기 (1) | 2025.09.01 |
Comments