Prev Next

Java / Java8 streams

Explain Java8 Collectors partitioningBy method.

Java 8 Collectors.partitioningBy method accepts a predicate and returns a Collector by partitioning the element of the stream using Predicate so it will have 2 keys at most in Map. The key of the map can be only true and false and each key's value is a list of elements.

public static <T> Collector<T,?,Map<Boolean,List<T>>> 
                                         partitioningBy(Predicate<? super T> predicate)

Consider the below example. This program checks if each item of list1 exists in list2 and partition with predicate.

public class PartitioningByEx1 {

	public static void main(String[] args) {

		List<String> list1 = Arrays.asList("A", "B", "C", "D");
		List<String> list2 = Arrays.asList("A", "D", "E");

		list1.stream().collect(Collectors.partitioningBy(item -> list2.contains(item)))
				.forEach((key, val) -> System.out.println(key + "-->>" + val));
	}

}

Output:

false-->>[B, C]
true-->>[A, D]

❤Cash Back At Stores you Love !!!❤

Earn your $10 reward when you make your first purchase through Ebates by signing up with clicking below button.

Ebates Coupons and Cash Back

More Related questions...

Show more question and Answers...

JavaFX

Comments & Discussions