java functional

private static void sumWithRegularStream() { for (int i = 0; i < 10; i++) { IntStream.rangeClosed(1, 100000).sum(); } } private static void sumWithParallelStream() { for (int i = 0; i < 10; i++) { IntStream.rangeClosed(1, 100000).parallel().sum(); } } class Test { public static void main(String[] args) { long regularStreamStartTime = System.currentTimeMillis(); sumWithRegularStream(); System.out.println(“Regular Stream execution…

Read More Parallel Streams Performance Testing

class Test { public static void main(String[] args) { System.out.println(“Normal Stream…”); IntStream integers = IntStream.rangeClosed(1, 10); integers.forEach(num -> System.out.print(num + ” “)); System.out.println(); System.out.println(“Parallel Stream…”); IntStream integers2 = IntStream.rangeClosed(1, 10); integers2.parallel().forEach(num -> System.out.print(num + ” “)); } } Output: Normal Stream… 1 2 3 4 5 6 7 8 9 10 Parallel Stream… 7 6…

Read More Introduction to Parallel Streams API in Java

class Test { public static void main(String[] args) { Optional<String> stringOptional = Optional.ofNullable(“value1”); stringOptional.map(value -> value.concat(“234”)) .ifPresent(System.out::println); } } Output: value1234 class Student { private String firstName; private String lastName; private int grade; private Optional<String> address; public Student(String firstName, String lastName, int grade) { this.firstName = firstName; this.lastName = lastName; this.grade = grade; } public…

Read More Optional – map() and flatMap() operations

public Optional<T> filter(Predicale<T> predicate) class Test { public static void main(String[] args) { Optional<String> stringOptional = Optional.ofNullable(“alegru coding”); stringOptional.filter(str -> str.length() > 10) .map(String::toUpperCase) .ifPresent(System.out::println); } } Output: ALEGRU CODING class Test { public static void main(String[] args) { Optional<User> userOptional = Optional.ofNullable(new User(“John”, “john123”, “premium”, “5th Avenue”)); userOptional.filter(user -> user.getMembershipType().equals(“premium”)) .ifPresent(System.out::println); } } class…

Read More Optional – filter() operation

class Test { public static void main(String[] args) { Optional<String> optional = Optional.ofNullable(“value1”); String valueFromOptional = optional .map(value -> value.toUpperCase()) // if the value is not null, return the transformed value .orElse(“default value”); // if the value is null, return the “default value” System.out.println(valueFromOptional); } } Output: VALUE1 class Test { public static void main(String[]…

Read More Optional – orElse(), orElseGet() and orElseThrow() methods

class Test { public static void main(String[] args) { Optional<String> optional = Optional.ofNullable(“someValue”); if (optional.isPresent()) { System.out.println(“The value is: ” + optional.get()); } else { System.out.println(“Optional is empty.”); } } } Output: The value is: someValue class Test { public static void main(String[] args) { Optional<String> optional = Optional.ofNullable(“someValue”); optional.ifPresent(value -> System.out.println(value)); } } Output:…

Read More Optional – ifPresent() and isPresent() methods

class Test { public static void main(String[] args) { Optional optional = Optional.empty(); // creates an empty Optional if (optional.isEmpty()) { System.out.println(“It is an empty Optional.”); } else { System.out.println(“Optional is not empty.”); } } } Output: It is an empty Optional. class Test { public static void main(String[] args) { Optional optional = Optional.of(“STRING…

Read More Introduction to Optional class in Java

public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? super T, ? extends K> classifier) class Test { public static void main(String[] args) { List<String> cities = new ArrayList<>(Arrays.asList(“Paris”, “Bern”, “London”, “Tokyo”, “Boston”)); Map<Integer, List<String>> resultMap = cities.stream() .collect(Collectors.groupingBy(String::length)); System.out.println(resultMap); } } Output: {4=[Bern], 5=[Paris, Tokyo], 6=[London, Boston]} class Test { public static void main(String[]…

Read More Streams – groupingBy() operation

class Test { public static void main(String[] args) { List<String> words = new ArrayList<>(Arrays.asList(“Hello”, “World”, “of”, “Java!”)); String result = words.stream().collect(Collectors.joining()); System.out.println(result); String resultWithDelimiters = words.stream().collect(Collectors.joining(“-“)); // delimiter System.out.println(resultWithDelimiters); String resultWithDelimitersAndPrefixAndSuffix = words.stream().collect(Collectors.joining(“-“, “(“, “)”)); // delimiter, prefix, suffix System.out.println(resultWithDelimitersAndPrefixAndSuffix); } } Output: HelloWorldofJava! Hello-World-of-Java! (Hello-World-of-Java!) class Test { public static void main(String[] args) {…

Read More Streams – collect() operation

DoubleStream.of(2.4); DoubleStream.of(7.1, 10.5, 12.7); DoubleStream.iterate(0, i -> i + 2).limit(10); DoubleStream.generate(() -> Math.random() * 5).limit(10); class Test { public static void main(String[] args) { DoubleStream doubleStream = DoubleStream.of(1.2, 3.1, 7.2, 5.3, 9.8); doubleStream.forEach(item -> System.out.print(item + ” “)); } } Output: 1.2 3.1 7.2 5.3 9.8 class Test { public static void main(String[] args) {…

Read More Streams – DoubleStream class

LongStream.of(7); LongStream.of(7, 8, 9); LongStream.range(1, 3); LongStream.rangeClosed(1, 3); LongStream.iterate(0, i -> i + 2).limit(10); LongStream.generate(() -> (long) (Math.random() * 5)).limit(10); class Test { public static void main(String[] args) { LongStream longStream = LongStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); longStream.forEach(item -> System.out.print(item + ” “)); } } Output: 1 2 3 4…

Read More Streams – LongStream class

IntStream.of(5); IntStream.of(1, 2, 3); IntStream.range(1, 3); IntStream.rangeClosed(1, 3); IntStream.iterate(0, i -> i + 2).limit(10); IntStream.generate(() -> (int) (Math.random() * 5)).limit(10); class Test { public static void main(String[] args) { IntStream intStream = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); intStream.forEach(item -> System.out.print(item + ” “)); } } Output: 1 2 3 4…

Read More Streams – IntStream class

Optional<T> findAny() class Test { public static void main(String[] args) { List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 7, 9, 15, 17)); Optional<Integer> resultOptional = numbers.stream().findAny(); if (resultOptional.isPresent()) { // checking if optional contains any value System.out.println(“The element returned from the stream: ” + resultOptional.get()); // getting the value from Optional } else { System.out.println(“The stream is…

Read More Streams – findAny() operation