Java 8 – Find duplicate elements in a Stream

This article shows you three algorithms to find duplicate elements in a Stream. Set.add() Collectors.groupingBy Collections.frequency At the end of the article, we use the JMH benchmark to test which one is the fastest algorithm. 1. Filter & Set.add() The Set.add() returns false if the element was already in the set; let see the benchmark …

Read more

JMH – Java Forward loop vs Reverse loop

A JMH benchmark test about Forward loop vs Reverse loop for a List. There is a myth about reverse loop is faster, is this true? Tested with JMH 1.21 Java 10 Maven 3.6 CPU i7-7700 Forward loop for (int i = 0; i < aList.size(); i++) { String s = aList.get(i); System.out.println(s); } Reverse loop …

Read more

Java JMH Benchmark Tutorial

Benchmark (N) Mode Cnt Score Error Units BenchmarkLoop.loopFor 10000000 avgt 10 61.673 ± 1.251 ms/op BenchmarkLoop.loopForEach 10000000 avgt 10 67.582 ± 1.034 ms/op BenchmarkLoop.loopIterator 10000000 avgt 10 66.087 ± 1.534 ms/op BenchmarkLoop.loopWhile 10000000 avgt 10 60.660 ± 0.279 ms/op In Java, we can use JMH (Java Microbenchmark Harness) framework to measure the performance of a …

Read more