Tuesday, December 30, 2014

JDK 8: Stream API

Stream API

  • The Stream interface is located in the java.util.stream package.
  • It represents a sequence of objects somewhat like the Iterator interface. However, unlike the Iterator, it supports parallel execution.
  • The Stream interface supports the map/filter/reduce pattern and executes lazily, forming the basis (along with lambdas) for functional-style programming in Java 8.
  • There are also corresponding primitive streams (IntStream, DoubleStream, and LongStream) for performance reasons.

How to create Stream which are multi core friendly

try (FileReader fr = new FileReader("text.txt");
BufferedReader br = new BufferedReader(fr)) {

// Read the line and Print


// Read the line and sort

br.lines().sorted(( x1, x2) -> x1.compareTo(x2))


// Read the line and sort and filter and finally print

br.lines().sorted((String x1, String x2) -> x1.compareTo(x2))

.filter(line -> line.contains("x"))


} catch (Exception e) {

// TODO: handle exception



Stream API operations

  • There are several static methods on the  java.nio.file.Files class for navigating file trees using a Stream.
  • list(Path dir) – Stream of files in the given directory.
  • walk(Path dir)– Stream that traverses the file tree depth-first starting at the given directory.
  • walk(Path dir, int maxDepth) – Same as walk(dir) but with a maximum depth.
  • Streaming text pattern
Pattern patt = Pattern.compile(",");


1 comment:

Post a Comment

Recent Posts

Unix Commands | List all My Posts


This blog intended to share the knowledge and contribute to JAVA Community such a way that by providing samples and pointing right documents/webpages. We try to give our knowledege level best and no guarantee can be claimed on truth. Copyright and Terms of Policy refer blogspot.com