Stream api - amresh087/newronaRepos GitHub Wiki

Java Stream --> If you want process object from the collection then we should go for stream.

For example if my requriment even number add in another list

	package com.amresh.functional;
	
	import java.util.ArrayList;
	import java.util.List;
	import java.util.stream.Collectors;
	
	public class StreamApi {
	
		public static void main(String[] args) {
	
			List<Integer> l = new ArrayList<>();
	
			l.add(0);
			l.add(10);
			l.add(20);
			l.add(5);
			l.add(15);
			l.add(25);
	
			System.out.println(l);
	
			// if my requriment even number add in another list
	
			// without stream api untill 1.7
			List<Integer> l1 = new ArrayList<>();
			for (Integer i : l) {
				if (i % 2 == 0) {
					l1.add(i);
				}
	
			}
			System.out.println(l1);
	
			// with stream api till 1.8
			List<Integer> l2 = l.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
			System.out.println(l2);
	
		}
	
	}

If my requriment add double of every elements in another list

	package com.alight.functional;
	
	import java.util.ArrayList;
	import java.util.List;
	import java.util.stream.Collectors;
	
	public class StreamApi {
	
		public static void main(String[] args) {
	
			List<Integer> l = new ArrayList<>();
	
			l.add(0);
			l.add(10);
			l.add(20);
			l.add(5);
			l.add(15);
			l.add(25);
	
			System.out.println(l);
	
			// if my requriment even number add in another list
	
			// without stream api untill 1.7
			List<Integer> l1 = new ArrayList<>();
			for (Integer i : l) {
					l1.add(i*2);
			}
			System.out.println(l1);
	
			// with stream api till 1.8
			List<Integer> l2 = l.stream().map(i->2*i).collect(Collectors.toList());
			System.out.println(l2);
	
		}
	
	}

Explanation of Java Stream Api

stream() is present in java.util.Collection interface and this introduce in java 1.8

filter(Predicate t) its take Boolean condition

map(Function<T,R> t) Every element present in collection if we want create equivalent object and doing some operation

How to collect the value

  1. collect()

  2. count()

  3. sorted(),sorted(Comprartor c)

  4. min(Comprartor c)

  5. max(Comprartor c)

  6. forEach() --> In this method is pass lamda expression

  7. toArray() if we want copy collection elements in array

Stream concept also can use on group of data or Array data that for on method called Stream.of(T t)

For Example

                List<Activity>  activities =  activitiesFactory.getActivities("data"); 

in java 1.7

		for(int index =0 ;index < activities.size(); index++) 
		{
			Activity activity = activities.get(index);
			try {
				if(activity != null && !activity.execute(context))
				{
					break;
				}
			} catch (Exception e) {
				if(StringUtils.isNotBlank(e.getMessage()) && e.getMessage().contains("Unauthorized or forbidden access")){
					context.set("LoginAgain",true);
					index = 0;
				}else{
					throw e;
				}
			}
		}

in java 1.8

		  activities.stream().filter(activity -> {
			try {
				return activity!=null && !activity.execute(context);
			} catch (Exception e) {
				if(StringUtils.isNotBlank(e.getMessage()) && e.getMessage().contains("Unauthorized or forbidden access"))
					context.set("LoginAgain",true);
				else
					try {throw e;} catch (Exception e1) {e1.printStackTrace();}	
			}
			return false;
		} ).findFirst();

in java 1.7

           Builder builder =new JWTClaimsSet.Builder().expirationTime());
	Map<String, Object> mdata = obj.getMapData();
	for(String key : mdata.keySet()){
		builder.claim(key, mdata.get(key));
	}

in java 1.8

   Builder builder =new JWTClaimsSet.Builder().expirationTime());
  obj.getMapData().forEach((key,value) -> {builder.claim(key, obj.getMapData().get(key));});
⚠️ **GitHub.com Fallback** ⚠️