Collectors collectingAndThen() method in Java 8


The collectingAndThen() method in Java Collectors class acclimates a Collector to perform an additional finishing transformation. It returns collector which performs the action of the downstream collector, followed by an additional ending step.

The syntax is as follows.

static <T,A,R,RR> Collector<T,A,RR> collectingAndThen(Collector<T,A,R> downstream, Function<R,RR>
finisher)

Here, the parameter,

  • T − Type of the input elements

  • A − Intermediate accumulation type of the downstream collector

  • R − The result type of the downstream collector

  • RR − The result type of the resulting collector

  • downstream − Collector

  • finisher − A function to be applied to the final result of the downstream collector

To work with Collectors class in Java, import the following package.

import java.util.stream.Collectors;

The following is an example to implement collectingAndThen() method in Java.

Example

 Live Demo

import java.util.List;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) {
      List<String> list
      = Stream.of("Demo1", "Demo2").collect(Collectors.collectingAndThen(
      Collectors.toList(),
      Collections::<String> unmodifiableList));
      System.out.println(list);
   }
}

Output

[Demo1, Demo2]

Updated on: 30-Jul-2019

670 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements