``` import java.util.Random; public class RandEx { public static void main(String args[]) { String a[]= {"가","나","다","라","마","바","사","아","자","차"}; String b[]=new String[a.length]; Random r=new Random(); for(int i=0;i<a.length;i++) { int x=r.nextInt(a.length-1); b[x]=a[x]; if(b[x]==b[x+1]) i--; System.out.print(b[x]); } } } ``` 이 코드에서 배열 b에 배열a의 문자열들을중복 없이 저장되게 하고 싶습니다. ``` 출력 예)나가다마바사아라차자 ``` 확인 부탁드립니다.
## 답변 임의의 섞은 배열 만들기 ## 코드 예 ``` import java.util.Arrays; import java.util.Random; /** * ShuffleTest */ public class ShuffleTest { public static void main(String[] args) { // 문자열 배열 생성 String a[] = { "가", "나", "다", "라", "마", "바", "사", "아", "자", "차" }; String b[] = new String[a.length]; // 복사 System.arraycopy(a, 0, b, 0, a.length); // 섞기 Random rand = new Random(); for (int i = b.length - 1; i > 0; i--) { int randIdx = rand.nextInt(i + 1); String temp = b[randIdx]; b[randIdx] = b[i]; b[i] = temp; } // 출력 System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); } } ``` ## 출력 예 ``` [가, 나, 다, 라, 마, 바, 사, 아, 자, 차] [라, 사, 자, 마, 바, 차, 가, 다, 나, 아] ```