반응형
1 부터 10까지 의 숫자를 무작위로 섞기
첫번째
public class randomMix {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] b = shuffle(a);
for (int c : b) {
builder.append(c).append(" ");
}
System.out.println(builder);
}
private static int[] shuffle(int[] numberList) {
for (int i = 0; i < numberList.length; i++) {
int a = (int) (Math.random() * numberList.length);
int tmp = numberList[a];
numberList[a] = numberList[i];
numberList[i] = tmp;
}
return numberList;
}
}
1~10 까지의 숫자를 shuffle를 이용해 랜덤하게 다시 배열 시켜 줍니다.
shuffle에 a 배열을 넣으면 배열 길이 만큼 for문이 돌게 됩니다.
int a = (int) Math.random() * numberList.length 를 이용해 10 사이의 랜덤 값을 하나 만들어 a 에 저장 해 둡니다
int tmp = numberList[a] - 랜덤으로 생성된 a 값을 이용해 해당 배열 위치의 값을 tmp에 저장 합니다.
numberList[a] = numberList[i]; - for문의 i값에 해당하는 numberList[i] 위치의 값을 랜덤으로 생성된 numberList[a] 위치
에 옴겨 줍니다.
numberList[i] = tmp; - numberList[i] 위치의 값이 numberList[a]로 이동했으니 numberList[i] 는 tmp에 저장된 값을 넣어
서로 위치 이동을 해 주면서 섞어 주는 방식 입니다.
두번째
public class randomMix {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
for (int i = 1; i < 11; i++) {
list.add(i);
}
Collections.shuffle(list);
for (int aa : list) {
System.out.print(aa + " ");
}
}
}
두번째는 다들 알고 계시는 Collections.shuffle을 이용해 섞어 주는 간단한 방식 입니다.
list에 1~10을 넣고 Collections.shuffle(list); 이용해 섞어 주면 끝~
반응형
'Android Studio' 카테고리의 다른 글
리사이클러뷰 애니메이션 - RecyclerView Animation (0) | 2020.05.03 |
---|---|
안드로이드 카드 뒤집기 - Android Flip Animation (0) | 2019.12.11 |
Realm 다중 모델 사용하기 - Android (0) | 2019.11.20 |
안드로이드 비슷한 기능의 여러 버튼 한번에 처리 - Resource (0) | 2019.10.29 |
JAVA - 랜덤함수 (중복제거) (0) | 2019.09.02 |