In Java 8, we can use StreamSupport.stream to convert an Iterator into a Stream. // Iterator -> Spliterators -> Stream Stream<String> stream = StreamSupport.stream( Spliterators.spliteratorUnknownSize( iterator, Spliterator.ORDERED) , false); Review the StreamSupport.stream method signature, it accepts a Spliterator. StreamSupport.java public static <T> Stream<T> stream(Spliterator<T> spliterator, boolean parallel) { Objects.requireNonNull(spliterator); return new ReferencePipeline.Head<>(spliterator, StreamOpFlag.fromCharacteristics(spliterator), parallel); } […]

Read more Java 8 – How to convert Iterator to Stream

A few of Java Iterator and ListIterator examples. 1. Iterator 1.1 Get Iterator from a List or Set, and loop over it. JavaIteratorExample1a.java package com.mkyong; import java.util.Arrays; import java.util.Iterator; import java.util.List; public class JavaIteratorExample1a { public static void main(String[] args) { /* Set<Integer> set = new HashSet<>(); set.add(1); set.add(2); set.add(3); set.add(4); set.add(5); Iterator<Integer> iterator = […]

Read more Java Iterator examples

In Java 8, we can use reduce or skip to get the last element of a Stream. 1. Stream.reduce Java8Example1.java package com.mkyong; import java.util.Arrays; import java.util.List; public class Java8Example1 { public static void main(String[] args) { List<String> list = Arrays.asList("node", "java", "c++", "react", "javascript"); String result = list.stream().reduce((first, second) -> second).orElse("no last element"); System.out.println(result); } […]

Read more Java 8 – Get the last element of a Stream?

Few Java 8 examples to get a primitive int from an IntStream. 1. IntStream -> int Java8Example1.java package com.mkyong; import java.util.Arrays; import java.util.OptionalInt; import java.util.stream.IntStream; public class Java8Example1 { public static void main(String[] args) { int[] num = {1, 2, 3, 4, 5}; //1. int[] -> IntStream IntStream stream = Arrays.stream(num); // 2. OptionalInt OptionalInt […]

Read more Java 8 – How to convert IntStream to int or int[]

In Java 8, we can use the Stream.reduce() to sum a list of BigDecimal. 1. Stream.reduce() Java example to sum a list of BigDecimal values, using a normal for loop and a stream.reduce(). JavaBigDecimal.java package com.mkyong; import java.math.BigDecimal; import java.util.LinkedList; import java.util.List; public class JavaBigDecimal { public static void main(String[] args) { List<BigDecimal> invoices = […]

Read more Java 8 – How to Sum BigDecimal using Stream?

In Java 8, Predicate is a functional interface, which accepts an argument and returns a boolean. Usually, it used to apply in a filter for a collection of objects. @FunctionalInterface public interface Predicate<T> { boolean test(T t); } Further Reading Java 8 BiPredicate Examples 1. Predicate in filter() filter() accepts predicate as argument. Java8Predicate.java package […]

Read more Java 8 Predicate Examples

In Java 8 Stream, the findFirst() returns the first element from a Stream, while findAny() returns any element from a Stream. 1. findFirst() 1.1 Find the first element from a Stream of Integers. Java8FindFirstExample1.java package com.mkyong.java8; import java.util.Arrays; import java.util.List; import java.util.Optional; public class Java8FindFirstExample1 { public static void main(String[] args) { List<Integer> list = […]

Read more Java 8 Stream findFirst() and findAny()

Java 8 stream and regular expression examples. Note Learn the basic regular expression at Wikipedia 1. String.matches(regex) 1.1 This example, check if the string is a number. JavaRegEx1.java package com.mkyong.regex; import java.util.Arrays; import java.util.List; public class JavaRegEx1 { public static void main(String[] args) { List<String> numbers = Arrays.asList("1", "20", "A1", "333", "A2A211"); for (String number […]

Read more Java Regular Expression Examples

As title, we can use flatMap to convert it. Java9Example1.java package com.mkyong.test; import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; public class Java9Example1 { public static void main(String[] args) { List<String> numbers = Arrays.asList("1", "2", "A", "B", "C1D2E3"); List<List<String>> collect = numbers.stream() .map(x -> new Scanner(x).findAll("\\D+") .map(m -> m.group()) .collect(Collectors.toList()) ) .collect(Collectors.toList()); collect.forEach(x -> System.out.println(x)); […]

Read more Java 8 Stream – Convert List<List<String>> to List<String>

Call the .values() method of the enum class to return an array, and loop it with the for loop: for (EnumClass obj : EnumClass.values()) { System.out.println(obj); } For Java 8, convert an enum into a stream and loop it: Stream.of(EnumClass.values()).forEach(System.out::println); 1. For Loop Enum 1.1 An enum to contain a list of the popular JVM […]

Read more How to loop an enum in Java

Few Java 8 examples to execute streams in parallel. 1. BaseStream.parallel() A simple parallel example to print 1 to 10. ParallelExample1.java package com.mkyong.java8; import java.util.stream.IntStream; public class ParallelExample1 { public static void main(String[] args) { System.out.println("Normal…"); IntStream range = IntStream.rangeClosed(1, 10); range.forEach(System.out::println); System.out.println("Parallel…"); IntStream range2 = IntStream.rangeClosed(1, 10); range2.parallel().forEach(System.out::println); } } Output Normal… 1 2 […]

Read more Java 8 Parallel Streams Examples

Many examples are using the .count() as the terminal operation for .peek(), for example: Java 8 List<String> l = Arrays.asList("A", "B", "C", "D"); long count = l.stream().peek(System.out::println).count(); System.out.println(count); // 4 Output – It’s working fine. A B C D 4 However, for Java 9 and above, the peek() may print nothing: Java 9 and above […]

Read more Java 8 Stream – The peek() is not working with count()?

Only Streams whose source are an IO channel like Files.lines(Path, Charset) need to be closed. Read this Stream JavaDocs Streams have a BaseStream.close() method and implement AutoCloseable, but nearly all stream instances do not actually need to be closed after use. Generally, only streams whose source is an IO channel (such as those returned by […]

Read more Java 8 – Should we close the Stream after use?

In Java 8, we can use .toArray() to convert a Stream into an Array. 1. Stream -> String[] StreamString.java package com.mkyong; import java.util.Arrays; public class StreamString { public static void main(String[] args) { String lines = "I Love Java 8 Stream!"; // split by space, uppercase, and convert to Array String[] result = Arrays.stream(lines.split("\\s+")) .map(String::toUpperCase) […]

Read more Java 8 – Convert a Stream to Array

The key is boxed() the IntStream into a Stream<Integer>, then only convert to an Array. StreamExample.java package com.mkyong; import java.util.Arrays; import java.util.stream.IntStream; import java.util.stream.Stream; public class StreamExample { public static void main(String[] args) { //int[] -> IntStream -> Stream<Integer> -> Integer[] int[] num = {3, 4, 5}; //1. int[] -> IntStream IntStream stream = Arrays.stream(num); […]

Read more Java 8 – How to convert IntStream to Integer[]

Few Java examples to declare, initialize and manipulate Array in Java 1. Declares Array 1.1 For primitive types. ArrayExample1.java package com.mkyong; import java.util.Arrays; public class ArrayExample1 { public static void main(String[] args) { //declares an array of integers int[] num1 = new int[5]; int[] num2 = {1, 2, 3, 4, 5}; int[] num3 = new […]

Read more Java – How to declare and initialize an Array

Few examples to show you how to sort a List with stream.sorted() 1. List 1.1 Sort a List with Comparator.naturalOrder() package com.mkyong.sorted; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class StreamApplication { public static void main(String[] args) { List<String> list = Arrays.asList("9", "A", "Z", "1", "B", "Y", "4", "a", "c"); /* List<String> sortedList = list.stream() […]

Read more Java 8 – How to sort list with stream.sorted()

In Java, there are few ways to read a file line by line into a List 1. Java 8 stream List<String> result; try (Stream<String> lines = Files.lines(Paths.get(fileName))) { result = lines.collect(Collectors.toList()); } 2. Java 7 Files.readAllLines(new File(fileName).toPath(), Charset.defaultCharset()); 3. Classic BufferedReader example. List<String> result = new ArrayList<>(); BufferedReader br = null; try { br = […]

Read more Java – How to read a file into a list?

Fibonacci number – Every number after the first two is the sum of the two preceding. Few Java examples to find the Fibonacci numbers. 1. Java 8 stream 1.1 In Java 8, we can use Stream.iterate to generate Fibonacci numbers like this : Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1], t[0] + t[1]}) .limit(10) .forEach(x […]

Read more Java Fibonacci examples

In Java 8, stream().map() lets you convert an object to something else. Review the following examples : 1. A List of Strings to Uppercase 1.1 Simple Java example to convert a list of Strings to upper case. TestJava8.java package com.mkyong.java8; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class TestJava8 { public static void […]

Read more Java 8 Streams map() examples

Java examples to check if an Array (String or Primitive type) contains a certain values, updated with Java 8 stream APIs. 1. String Arrays 1.1 Check if a String Array contains a certain value “A”. StringArrayExample1.java package com.mkyong.core; import java.util.Arrays; import java.util.List; public class StringArrayExample1 { public static void main(String[] args) { String[] alphabet = […]

Read more Java – Check if Array contains a certain value?

Java 8 Stream examples to sort a Map, by keys or by values. 1. Quick Explanation Steps to sort a Map in Java 8. Convert a Map into a Stream Sort it Collect and return a new LinkedHashMap (keep the order) Map result = map.entrySet().stream() .sorted(Map.Entry.comparingByKey()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); P.S By […]

Read more Java 8 – How to sort a Map

A Java 8 example to show you how to convert a Stream to a List via Collectors.toList Java8Example1.java package com.mkyong.java8; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Java8Example1 { public static void main(String[] args) { Stream<String> language = Stream.of("java", "python", "node"); //Convert a Stream to List List<String> result = language.collect(Collectors.toList()); result.forEach(System.out::println); } } output […]

Read more Java 8 – Convert a Stream to List

Review a Stream containing null values. Java8Examples.java package com.mkyong.java8; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Java8Examples { public static void main(String[] args) { Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php"); List<String> result = language.collect(Collectors.toList()); result.forEach(System.out::println); } } output java python node null //

Read more Java 8 – Filter a null value from a Stream

This article explains the Java 8 Stream.flatMap and how to use it. Topic What is flatMap? Why flat a Stream? flatMap example – Find a set of books. flatMap example – Order and LineItems. flatMap example – Splits the line by spaces. flatMap and Primitive type 1. What is flatMap()? 1.1 Review the below structure. […]

Read more Java 8 flatMap example

In Java 8, you can either use Arrays.stream or Stream.of to convert an Array into a Stream. 1. Object Arrays For object arrays, both Arrays.stream and Stream.of returns the same output. TestJava8.java package com.mkyong.java8; import java.util.Arrays; import java.util.stream.Stream; public class TestJava8 { public static void main(String[] args) { String[] array = {"a", "b", "c", "d", […]

Read more Java – How to convert Array to Stream

In Java 8, Stream cannot be reused, once it is consumed or used, the stream will be closed. 1. Example – Stream is closed! Review the following example, it will throw an IllegalStateException, saying “stream is closed”. TestJava8.java package com.mkyong.java8; import java.util.Arrays; import java.util.stream.Stream; public class TestJava8 { public static void main(String[] args) { String[] […]

Read more Java – Stream has already been operated upon or closed

In this article, we will show you how to use Java 8 Stream Collectors to group by, count, sum and sort a List. 1. Group By, Count and Sort 1.1 Group by a List and display the total count of it. Java8Example1.java package com.mkyong.java8; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; public […]

Read more Java 8 – Stream Collectors groupingBy examples

In this tutorial, we will show you few Java 8 examples to demonstrate the use of Streams filter(), collect(), findAny() and orElse() 1. Streams filter() and collect() 1.1 Before Java 8, filter a List like this : BeforeJava8.java package com.mkyong.java8; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class BeforeJava8 { public static void main(String[] args) […]

Read more Java 8 Streams filter examples

In Java 8, you can use Files.lines to read file as Stream. c://lines.txt – A simple text file for testing line1 line2 line3 line4 line5 1. Java 8 Read File + Stream TestReadFile.java package com.mkyong.java8; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.stream.Stream; public class TestReadFile { public static void main(String args[]) { String fileName […]

Read more Java 8 Stream – Read a file line by line

In Java, you can use String.toCharArray() to convert a String into a char array. StringToCharArray.java package com.mkyong.utils; public class StringToCharArray { public static void main(String[] args) { String password = "password123"; char[] passwordInCharArray = password.toCharArray(); for (char temp : passwordInCharArray) { System.out.println(temp); } } } Output p a s s w o r d 1 […]

Read more Java – How to convert String to Char Array