Java - Collections.rotate() 란?

2019. 2. 25. 17:08프로그래밍언어/Java&Servlet

Java - Collections.rotate() 란?



만약 List 객체에 [1,2,3,4,5] 요소들이 들어있다고 생각해보자. 

여기에서 Collections.rotate(list,2) 메소드를 호출한다면 맨뒤의 요소를 하나씩 두번꺼내서 맨앞 요소자리에 넣고

다른 요소들은 뒤로 한칸씩밀리게 되는 것이다.


이것을 Step으로 표현하면


1
2
3
4
5
6
7
8
9
10
@Test
public void CollectionsRotate(){
    List<Integer> list = new ArrayList<>();
    list.addAll(Arrays.asList(new Integer[] {1,2,3,4,5}));
    
    Collections.rotate(list, 1);
    System.out.println(Arrays.toString(list.toArray()));
    Collections.rotate(list, 1);
    System.out.println(Arrays.toString(list.toArray()));
}
cs




Collections.rotate(list,2)를 step을 두단계로 나누어서 결과를 출력하기 위해 Collections.rotate(list,1)을 두번 출력했다.

이것들의 결과는

>[5,1,2,3,4]

>[4,5,1,2,3]


이라는 결과를 출력하게된다. 이것은 쉽게 말하면 마지막 요소를 꺼내서 맨앞 요소자리로 넣는 것이고, 나머지 요소들은 방금꺼낸 요소의

자리까지 한칸 밀리게 되는 것이다.