Posts

Showing posts with the label Java Streams

Java 8 Streams - Program To Break A List Into Batches Of Given Size

Image
In this post, we will show how to break a list into batches of a given size. Example 1: Convert List of Characters into batches of a given size import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; public class Main { public static void main( String [] args) { List < Character > list = Arrays .asList( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' ); int chunkSize = 3 ; AtomicInteger ai = new AtomicInteger(); Collection < List < Character >> chunkedOrders = list.stream() .collect(Collectors.groupingBy(item -> ai .getAndIncrement() / chunkSize)) .values(); chun

Java 8 Stream - Remove duplicates from a list of objects based on a property

Image
Hello everyone, here we will show you how to remove duplicates from a list of objects based on a single property.  In this example, we are getting the stream from the list and putting it in the TreeSet from which we provide a custom comparator that compares id, email, or salary uniquely. Here we are going to remove duplicates based on the, id(Long) property of the user email(String) property of the user salary(Double) property of the user User.java public class User { private Long id; private String name; private String email; private String phone; private Double salary; public Long getId() { return id; } public void setId( Long id) { this .id = id; } public String getName() { return name; } public void setName( String name) { this .name = name; } public String getEmail() { return email; } public void setEmail( String email) { this .email = email

How to transform HashMap to another HashMap using Java 8 Collectors toMap

Image
Hello everyone, here we will show you how to convert HashMap<Integer, User> to another HashMap<Integer, UserDto> using Java 8 Collectors toMap. The  Collectors.toMap returns a Collector that accumulates elements into a Map whose keys and values are the result of applying the provided mapping functions to the input elements. Overview of components used in this example Java Stream API The Java Stream API provides a functional approach to processing collections of objects. The Stream in Java can be defined as a sequence of elements from a source Collection or Array. Most of the stream operations return a Stream. This helps create a chain of stream operations(stream pipe-lining). The streams also support the aggregate or terminal operations on the elements. for example, finding the minimum or maximum element or finding average etc...Stream operations can either be executed sequentially or parallel. when performed parallelly, it is called a parallel stream. Collectors.toMap The

How to transform Array of objects to another Array of objects using Java 8 streams?

Image
Hello everyone, here we will show you how to convert an Array of objects to another Array of objects using Java streams map(). The ‘map’ method maps each element to its corresponding result.  Java Stream API The Java Stream API provides a functional approach to processing collections of objects. The Stream in Java can be defined as a sequence of elements from a source Collection or Array. Most of the stream operations return a Stream. This helps create a chain of stream operations(stream pipe-lining). The streams also support the aggregate or terminal operations on the elements. for example, finding the minimum or maximum element or finding average etc...Stream operations can either be executed sequentially or parallel. when performed parallelly, it is called a parallel stream. Stream map() Method The Java 8 Stream map() is an intermediate operation.It converts Stream<obj1> to Stream<obj2>. For each object of type obj1, a new object of type obj2 is created and put in the ne

Convert List to Map After Java 8

Image
Hello everyone, Here we will learn how to convert List to Map in after Java 8 using Streams. What's new in this example? From Java 14 onwards, the 'record' is a special type of class declaration aimed at reducing the boilerplate code.  From Java 10 onwards, the 'var' keyword allows local variable type inference, which means the type for the local variable will be inferred by the compiler, so we don't need to declare that. Example 1: Convert List to Map after Java 14 using Streams package com.knf.dev.demo ; import java.util.ArrayList ; import java.util.List ; import java.util.Map ; import java.util.function.Function ; import java.util.stream.Collectors ; public class Main { public static void main ( String []args) { //The var keyword was introduced in Java 10. var users = new ArrayList< User >(); var user1 = new User( 1 , "user1" ); var user2 = new User( 2 , "user2" ); var user3 = new User(