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]