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:
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<Integer> myList
= Arrays.asList( 1 , 2 , 3 , 4 , 5 );
List<List<Integer> > lists
= Lists.partition(myList, 2 );
for (List<Integer> sublist: lists)
System.out.println(sublist);
}
}
|
Output:
[1, 2]
[3, 4]
[5]
Example 2:
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.List;
class GFG {
public static void main(String[] args)
{
List<Character> myList
= Arrays.asList( 'H' , 'E' , 'L' , 'L' , 'O' ,
'G' , 'E' , 'E' , 'K' , 'S' );
List<List<Character> > lists
= Lists.partition(myList, 3 );
for (List<Character> sublist: lists)
System.out.println(sublist);
}
}
|
Output:
[H, E, L]
[L, O, G]
[E, E, K]
[S]
Reference: https://google.github.io/guava/releases/23.0/api/docs/com/google/common/collect/Lists.html#partition-java.util.List-int-