국비교육/국비교육 복습
day17_api.util.collection_Test07 : ArrayList의 정렬 (Collections 클래스 이용)
Luver Duck
2022. 8. 21. 00:08
(Q) 이번 주 로또 예상번호를 추첨하여 출력
- 로또 번호는 1~45까지 숫자가 총 6개
- 단, 번호는 낮은 것부터 나와야 합니다
메인 메소드 (1)
- 난수 6개를 생성해서 List에 입력하는 방법
package day17_api.util.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Test07 {
public static void main(String[] args) {
// List 생성
List<Integer> list = new ArrayList<>();
// 랜덤 생성
Random r = new Random();
// 구현
for(int i = 0 ; i < 6 ; i ++) {
// 난수 생성
int numR = r.nextInt(45) + 1;
// List에 입력
if(list.contains(numR)) {
i --;
}
else {
list.add(numR);
}
}
// 정렬(오름차순)
Collections.sort(list);
// 출력
System.out.print("이번주 로또 번호 : ");
for(int i = 0 ; i < list.size() ; i ++) {
System.out.print(list.get(i) + " ");
}
}
}
메인 메소드 (2)
- 1~45의 숫자가 입력된 List를 셔플한 후 앞에서부터 6개를 추출하는 방법
package day17_api.util.collection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test07_1 {
public static void main(String[] args) {
// List 생성
List<Integer> list = new ArrayList<>();
// List에 1부터 45까지 입력
for(int i = 1 ; i <= 45 ; i ++) {
list.add(i);
}
// List 섞기 (Shuffle)
Collections.shuffle(list);
// 앞에서부터 6개 출력
System.out.print("이번주 로또 번호 : ");
for(int i = 0 ; i < 6 ; i ++) {
System.out.print(list.get(i) + " ");
}
}
}
- Collections 클래스의 메소드 일부
Collections.sort(List<T> list) | List를 오름차순으로 정렬한다 | static |
Collections.shuffle(List<T> list) | List를 랜덤으로 섞는다 | static void |
(무작위성의 기본 소스를 사용하여 지정된 목록을 무작위로 치환합니다.) ??