Java Collections.rotate()
September 05, 2021
On this page we will learn static method rotate()
of Java java.util.Collections
class. The Collections.rotate()
method rotates the elements of a Java list for the given distance. We can also rotate the sublist for the given distance within a list. Find its method syntax.
public static void rotate(List<?> list, int distance)
1. {A B C} after rotating for distance= -1 {B C A} 2. {A B C} after rotating for distance= 1 {C A B}
MyApp.java
package com.concretepage; import java.util.Arrays; import java.util.Collections; import java.util.List; public class MyApp { public static void main(String[] args) { User u1 = new User("A"); User u2 = new User("B"); User u3 = new User("C"); List<User> list = Arrays.asList(u1, u2, u3); System.out.println("before rotate"); list.forEach(u -> System.out.print(u.getName()+ " ")); //A B C System.out.println("\nafter rotating by distnace 2"); Collections.rotate(list, 2); list.forEach(u -> System.out.print(u.getName()+ " ")); //B C A System.out.println("\nafter rotating by distnace -1"); Collections.rotate(list, -1); list.forEach(u -> System.out.print(u.getName()+ " ")); //C A B } } class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } }
before rotate A B C after rotating by distnace 2 B C A after rotating by distnace -1 C A B
Collections.rotate with SubList
Now we will rotate a sub list within a list. Find the example.RotateSubList.java
package com.concretepage; import java.util.Arrays; import java.util.Collections; import java.util.List; public class RotateSubList { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8); System.out.println("List before rotate"); list.forEach(n -> System.out.print(n + " ")); System.out.println("\nlist.subList(2, 5)"); list.subList(2, 5).forEach(n -> System.out.print(n + " ")); System.out.println("\nList after rotating sublist by distnace 1"); Collections.rotate(list.subList(2, 5), 1); list.forEach(n -> System.out.print(n + " ")); } }
List before rotate 1 2 3 4 5 6 7 8 list.subList(2, 5) 3 4 5 List after rotating sublist by distnace 1 1 2 5 3 4 6 7 8