이 기사의 주요 연구는 Collections.shuffle () 메소드의 관련 내용입니다. 아래의 특정 콘텐츠를 살펴 보겠습니다.
java.util.collections 클래스에는 다음과 같이 정적 셔플 () 메소드가 있습니다.
1) 정적 무효 셔플 (List <?> 목록) 기본 임의 소스를 사용하여 목록을 변태하며 모든 순열의 가능성은 거의 동일합니다.
2) 정적 void Shuffle (List <?> 목록, 랜덤 랜드)은 지정된 임의 소스를 사용하여 지정된 목록을 수행합니다. 임의의 소스가 공정하다고 가정 할 때 모든 순열이 발생할 가능성은 거의 동일합니다.
간단히 말해서, 그것은 셔플과 같습니다. 원래 순서를 무작위로 방해합니다.
참고 : 정수 배열이 주어지면 Array.asList () 메소드를 사용하여 수집 클래스로 변환하면 두 가지 방법이 있습니다.
1) 목록 <integer> list = arraylist (arrays.aslist (ia))를 사용하고 shuffer ()를 사용하여 방해가되면 기본 배열의 순서가 변경되지 않습니다.
2) 목록 <integer> list = arrays.aslist (ia)를 사용한 다음 셔플 ()을 사용하여 방해를 사용하면 기본 배열의 순서가 변경됩니다. 코드 예제는 다음과 같습니다.
패키지 ahu; import java.util.*; public class modify {public static void main (string [] args) {random rand = new random (47); Integer [] ia = {0,1,2,3,4,5,6,8,9}; List <정수> 목록 = new ArrayList <integer> (arrays.aslist (ia)); System.out.println ( "Shufflig 전 :"+list); collections.shuffle (list, rand); system.out.println ( "셔플 링 후 :"+목록); System.out.println ( "array :"+artorays.toString (IA)); list1 = arrays.aslist (ia); system.out.println ( "셔플 링 전 :"+list1); collections.shuffer (list1, rand); system.out.println ( "셔플 링 후 :"+list1); system.out.println ( "array :"+arrays.tostring (ia));작업 결과는 다음과 같습니다.
3, 9] 셔플 링 후 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 셔플 링 후 : [0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9] 셔플 링 후 : [0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 7, 7, 7, 7, 7, 7, 7, 7, 9, 7, 9, 1. 셔플 링 후 2, 4, 4, 5, 6, 7, 8, 9] 셔플 링 후 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 셔플 링 후 : [8, 0, 5, 2, 6, 1, 4, 9, 3, 7]
첫 번째 경우, Arrays.aslist ()의 출력은 ArrayList ()의 생성자로 전달되며 IA의 요소를 참조하는 ArrayList가 생성되므로 이러한 참조를 방해하면 배열이 수정되지 않습니다. 그러나 Arrays.aslist (IA)의 결과가 직접 사용되는 경우이 중단은 IA의 순서를 수정합니다. Arrays.aslist ()가 생성 한 목록 개체는 기본 배열을 물리적 구현으로 사용한다는 것을 인식하는 것이 중요합니다. 수행하는 작업 이이 목록을 수정하고 원래 배열을 수정하는 것을 원하지 않는 한 다른 컨테이너에 사본을 만들어야합니다.
요약
위의 내용은 Collections.shuffle () 메소드 예제에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!