The Lists.partition() method in Guava Library is used to divide the original list into sublists of the same size. The method accepts two parameters.
For example: If the original list passed as parameter is [a, b, c, d, e] and the partition size is 3, then the sublists yield are as [[a, b, c], [d, e]].
Syntax:
public static <T> List<List<T>> partition(List<T> list, int size)
Parameters: The method accepts two parameters:
- list: The list which is to be divided into sublists based on the partition size.
- size: The desired size of each sublist. The size of the last sublist may be smaller.
Return Value: The method returns the list of consecutive sublists. Each sublist(except possibly the last one) has the size equal to the partition size.
Exception: The method Lists.partition() throws IllegalArgumentException if partition size is non-positive.
Below examples illustrate the implementation of above method:
Example 1:
// Java code to show implementation of // Guava's Lists.partition() method   import com.google.common.collect.Lists; import java.util.Arrays; import java.util.List;   class GFG {       // Driver's code     public static void main(String[] args)     {         // Creating a List of Integers         List<Integer> myList             = Arrays.asList( 1 , 2 , 3 , 4 , 5 );           // Using Lists.partition() method to divide         // the original list into sublists of the same         // size, which are just views of the original list.         // The final list may be smaller.         List<List<Integer> > lists             = Lists.partition(myList, 2 );           // Displaying the sublists         for (List<Integer> sublist: lists)             System.out.println(sublist);     } } |
[1, 2] [3, 4] [5]
Example 2:
// Java code to show implementation of // Guava's Lists.partition() method   import com.google.common.collect.Lists; import java.util.Arrays; import java.util.List;   class GFG {       // Driver's code     public static void main(String[] args)     {           // Creating a List of Characters         List<Character> myList             = Arrays.asList( 'H' , 'E' , 'L' , 'L' , 'O' ,                             'G' , 'E' , 'E' , 'K' , 'S' );           // Using Lists.partition() method to divide         // the original list into sublists of the same         // size, which are just views of the original list.         // The final list may be smaller.         List<List<Character> > lists             = Lists.partition(myList, 3 );           // Displaying the sublists         for (List<Character> sublist: lists)             System.out.println(sublist);     } } |
[H, E, L] [L, O, G] [E, E, K] [S]