문제

왜 컬렉션 셔플 링이 제대로 작동하지 않는지 알 수 없기 때문에 매우 좌절하고 있습니다.

내가 셔플하려고한다고 가정 해 봅시다 randomizer 정렬.

int[] randomizer = new int[] {200,300,212,111,6,2332}; 
Collections.shuffle(Arrays.asList(randomizer));

어떤 이유로 어떤 이유로 요소는 셔플 방법을 호출하는지 여부에 관계없이 정확히 동일하게 정렬되었습니다. 어떤 아이디어?

도움이 되었습니까?

해결책

Arrays.asList 프리미티브 배열과 함께 사용할 수 없습니다. 대신 사용하십시오 :

Integer[] randomizer = new Integer[] {200,300,212,111,6,2332}; 
Collections.shuffle(Arrays.asList(randomizer));

동일한 규칙은 원시 유형을 사용할 수 없다는 컬렉션 프레임 워크의 대부분의 클래스에 적용됩니다.

원래 코드 (함께 int[])은 정상으로 편집되었지만 변수 방법의 동작으로 인해 의도 된대로 작동하지 않았습니다. asList: 그것은 단지 하나의 요소 목록을 만듭니다. int 유일한 멤버로서 배열.

다른 팁

Chris의 대답이 맞습니다.

Chris의 답변에 대한 의견에서 말했듯이, 배열 목록이 성장하지 않으면 기본 배열이 적절하게 변경되고 목록이 새 제품을 생성하고 항목을 복사합니다.

목록에 대한 참조를 유지하고 Aslist 호출 후 목록을 반복하고 그 후 배열을 반복하지 않고 목록을 반복하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top