From d682d96a4f6ef28e4a9d8899188377711a1b59f0 Mon Sep 17 00:00:00 2001
From: Lokesh Singh <lsingh@nisum.com>
Date: Wed, 5 Apr 2023 16:54:16 +0530
Subject: [PATCH] java 8 and 11 features added

---
 .gitignore                                    |   2 +
 .idea/Java.iml                                |   9 ++
 .idea/compiler.xml                            |  16 +++
 .idea/encodings.xml                           |  13 ++
 .idea/jarRepositories.xml                     |  20 +++
 .idea/misc.xml                                |  14 +-
 .idea/modules.xml                             |   5 +-
 .idea/uiDesigner.xml                          | 124 ++++++++++++++++++
 .idea/vcs.xml                                 |   2 +-
 .../src/com/lokesh/arraylist/ListInJava.java  |  20 +++
 .../com/lokesh/comparable/SortStudent.java    |  20 +++
 .../src/com/lokesh/comparable/Student.java    |  24 ++++
 Comparable and Comparator/pom.xml             |  17 +++
 .../java/org/comparable/Comparable01.java     |   8 ++
 .../src/main/java/org/comparable/Main.java    |   7 +
 ExceptionHandling/pom.xml                     |  17 +++
 .../java/org/comparable/ExceptionDemo.java    |  21 +++
 .../src/main/java/org/comparable/Main.java    |   7 +
 .../classes/org/example/ExceptionDemo.class   | Bin 0 -> 1205 bytes
 .../target/classes/org/example/Main.class     | Bin 0 -> 540 bytes
 .../src/com/lokesh/lambda/Category.java       |   8 ++
 .../src/com/lokesh/lambda/Product.java        |  50 +++++++
 .../src/com/lokesh/lambda/ProductData.java    |  46 +++++++
 .../lokesh/lambda/exercise/Calculator.java    |  16 +++
 .../lambda/exercise/LambdaExample4.java       |  38 ++++++
 .../lambda/exercise/LambdaExercise1.java      |  36 +++++
 .../lambda/exercise/LambdaExercise101.java    |  24 ++++
 .../lambda/exercise/LambdaExercise104.java    |  26 ++++
 Streams/.idea/.gitignore                      |   3 +
 Streams/.idea/compiler.xml                    |  13 ++
 Streams/.idea/encodings.xml                   |   7 +
 Streams/.idea/jarRepositories.xml             |  25 ++++
 Streams/.idea/jpa-buddy.xml                   |   6 +
 Streams/.idea/misc.xml                        |  15 +++
 Streams/.idea/uiDesigner.xml                  | 124 ++++++++++++++++++
 Streams/pom.xml                               |  45 +++++++
 .../java/com/lokesh/streams/BagStream.java    |   4 +
 .../ForLoopStreams.java                       |  19 +++
 .../main/java/com/lokesh/streams/Main.java    |   7 +
 .../com/lokesh/streams/bagstream/Bag.java     |  35 +++++
 .../streams/bagstream/BagCheckoutBO.java      |  74 +++++++++++
 .../com/lokesh/streams/bagstream/Data.java    |  17 +++
 .../lokesh/streams/bagstream/ShipmentBO.java  |  42 ++++++
 .../streams/bagstream/ShipmentOptionBO.java   |  54 ++++++++
 .../streams/bagstream/ShippingMethodBO.java   |  31 +++++
 .../bagstream/ShippingProviderComponent.java  |   4 +
 .../ShippingProviderComponentImpl.java        |  33 +++++
 .../com/lokesh/streams/forEach/ForEach.java   |  38 ++++++
 .../lokesh/streams/nestedforloop/Address.java |  54 ++++++++
 .../streams/nestedforloop/NestedForLoop.java  | 102 ++++++++++++++
 .../lokesh/streams/nestedforloop/Student.java |  55 ++++++++
 .../streams/nestedforloop/StudentData.java    |  21 +++
 .../streams/streammain/StreamObject.java      |  39 ++++++
 .../streams/streammain/streammain01.java      |  33 +++++
 .../streams/streamsapi/DemoStreams.java       |  59 +++++++++
 .../lokesh/streams/bagstream/BeforeEach.java  |   4 +
 .../ShippingProviderComponentImplTest.java    |  38 ++++++
 .../com/lokesh/streams/BagStream.class        | Bin 0 -> 290 bytes
 .../ForLoopStreams.class                      | Bin 0 -> 475 bytes
 .../classes/com/lokesh/streams/Main.class     | Bin 0 -> 554 bytes
 .../com/lokesh/streams/bagstream/Bag.class    | Bin 0 -> 2575 bytes
 .../streams/bagstream/BagCheckoutBO.class     | Bin 0 -> 2672 bytes
 .../com/lokesh/streams/bagstream/Data.class   | Bin 0 -> 1451 bytes
 .../lokesh/streams/bagstream/ShipmentBO.class | Bin 0 -> 1848 bytes
 .../streams/bagstream/ShipmentOptionBO.class  | Bin 0 -> 1875 bytes
 .../streams/bagstream/ShippingMethodBO.class  | Bin 0 -> 971 bytes
 .../bagstream/ShippingProviderComponent.class | Bin 0 -> 160 bytes
 .../ShippingProviderComponentImpl.class       | Bin 0 -> 3566 bytes
 .../lokesh/streams/forEach/ForEach$1.class    | Bin 0 -> 939 bytes
 .../com/lokesh/streams/forEach/ForEach.class  | Bin 0 -> 2513 bytes
 .../streams/nestedforloop/Address.class       | Bin 0 -> 1524 bytes
 .../streams/nestedforloop/NestedForLoop.class | Bin 0 -> 5430 bytes
 .../streams/nestedforloop/Student.class       | Bin 0 -> 1965 bytes
 .../streams/nestedforloop/StudentData.class   | Bin 0 -> 1310 bytes
 .../streams/streammain/StreamObject.class     | Bin 0 -> 4630 bytes
 .../streams/streammain/streammain01.class     | Bin 0 -> 2740 bytes
 .../streams/streamsapi/DemoStreams$1.class    | Bin 0 -> 908 bytes
 .../streams/streamsapi/DemoStreams.class      | Bin 0 -> 3904 bytes
 .../src/RunableInterface/RunnableDemo.java    |  11 ++
 .../src/ThreadClass/ThreadDemo.java           |  39 ++++++
 functional-interface/pom.xml                  |  17 +++
 .../src/main/java/com/lokesh/FI/Main.java     |   7 +
 .../com/lokesh/FI/demo/DemoWithAnonymous.java |  17 +++
 .../main/java/com/lokesh/FI/demo/demo.java    |  22 ++++
 .../target/classes/com/lokesh/FI/Main.class   | Bin 0 -> 544 bytes
 .../target/classes/com/lokesh/FI/demo/A.class | Bin 0 -> 242 bytes
 .../target/classes/com/lokesh/FI/demo/B.class | Bin 0 -> 521 bytes
 .../target/classes/com/lokesh/FI/demo/C.class | Bin 0 -> 139 bytes
 .../lokesh/FI/demo/DemoWithAnnonymous$1.class | Bin 0 -> 724 bytes
 .../lokesh/FI/demo/DemoWithAnnonymous.class   | Bin 0 -> 622 bytes
 .../lokesh/FI/demo/DemoWithAnonymous$1.class  | Bin 0 -> 720 bytes
 .../lokesh/FI/demo/DemoWithAnonymous.class    | Bin 0 -> 618 bytes
 .../classes/com/lokesh/FI/demo/demo.class     | Bin 0 -> 530 bytes
 93 files changed, 1701 insertions(+), 3 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 .idea/Java.iml
 create mode 100644 .idea/compiler.xml
 create mode 100644 .idea/encodings.xml
 create mode 100644 .idea/jarRepositories.xml
 create mode 100644 .idea/uiDesigner.xml
 create mode 100644 Collections-in-java/src/com/lokesh/arraylist/ListInJava.java
 create mode 100644 Collections-in-java/src/com/lokesh/comparable/SortStudent.java
 create mode 100644 Collections-in-java/src/com/lokesh/comparable/Student.java
 create mode 100644 Comparable and Comparator/pom.xml
 create mode 100644 Comparable and Comparator/src/main/java/org/comparable/Comparable01.java
 create mode 100644 Comparable and Comparator/src/main/java/org/comparable/Main.java
 create mode 100644 ExceptionHandling/pom.xml
 create mode 100644 ExceptionHandling/src/main/java/org/comparable/ExceptionDemo.java
 create mode 100644 ExceptionHandling/src/main/java/org/comparable/Main.java
 create mode 100644 ExceptionHandling/target/classes/org/example/ExceptionDemo.class
 create mode 100644 ExceptionHandling/target/classes/org/example/Main.class
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/Category.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/Product.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/ProductData.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/exercise/Calculator.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExample4.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise1.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise101.java
 create mode 100644 Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise104.java
 create mode 100644 Streams/.idea/.gitignore
 create mode 100644 Streams/.idea/compiler.xml
 create mode 100644 Streams/.idea/encodings.xml
 create mode 100644 Streams/.idea/jarRepositories.xml
 create mode 100644 Streams/.idea/jpa-buddy.xml
 create mode 100644 Streams/.idea/misc.xml
 create mode 100644 Streams/.idea/uiDesigner.xml
 create mode 100644 Streams/pom.xml
 create mode 100644 Streams/src/main/java/com/lokesh/streams/BagStream.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/Main.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/Bag.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/BagCheckoutBO.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/Data.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentBO.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentOptionBO.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/ShippingMethodBO.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponent.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/forEach/ForEach.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/nestedforloop/Address.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/nestedforloop/NestedForLoop.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/nestedforloop/Student.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/nestedforloop/StudentData.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/streammain/StreamObject.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/streammain/streammain01.java
 create mode 100644 Streams/src/main/java/com/lokesh/streams/streamsapi/DemoStreams.java
 create mode 100644 Streams/src/test/java/com/lokesh/streams/bagstream/BeforeEach.java
 create mode 100644 Streams/src/test/java/com/lokesh/streams/bagstream/ShippingProviderComponentImplTest.java
 create mode 100644 Streams/target/classes/com/lokesh/streams/BagStream.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/Main.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/Bag.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/BagCheckoutBO.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/Data.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/ShipmentBO.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/ShipmentOptionBO.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/ShippingMethodBO.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponent.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/forEach/ForEach$1.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/forEach/ForEach.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/nestedforloop/Address.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/nestedforloop/NestedForLoop.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/nestedforloop/Student.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/nestedforloop/StudentData.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/streammain/StreamObject.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/streammain/streammain01.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams$1.class
 create mode 100644 Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams.class
 create mode 100644 Thread-in-java/src/RunableInterface/RunnableDemo.java
 create mode 100644 Thread-in-java/src/ThreadClass/ThreadDemo.java
 create mode 100644 functional-interface/pom.xml
 create mode 100644 functional-interface/src/main/java/com/lokesh/FI/Main.java
 create mode 100644 functional-interface/src/main/java/com/lokesh/FI/demo/DemoWithAnonymous.java
 create mode 100644 functional-interface/src/main/java/com/lokesh/FI/demo/demo.java
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/Main.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/A.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/B.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/C.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous$1.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous$1.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous.class
 create mode 100644 functional-interface/target/classes/com/lokesh/FI/demo/demo.class

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..018c9a0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+streams-lambda-expressions-java-se-11-developer-certification-1z0-819
+out
\ No newline at end of file
diff --git a/.idea/Java.iml b/.idea/Java.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/Java.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..065f21e
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="ExceptionHandling" />
+        <module name="Comparable and Comparator" />
+        <module name="functional-interface" />
+        <module name="Streams" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..5bad9ee
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/Comparable and Comparator/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/Comparable and Comparator/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/ExceptionHandling/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/ExceptionHandling/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/Streams/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/Streams/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/functional-interface/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/functional-interface/src/main/resources" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index cb58576..afad624 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="ProjectRootManager" version="2" project-jdk-name="11" project-jdk-type="JavaSDK">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/functional-interface/pom.xml" />
+        <option value="$PROJECT_DIR$/Streams/pom.xml" />
+        <option value="$PROJECT_DIR$/ExceptionHandling/pom.xml" />
+        <option value="$PROJECT_DIR$/untitled/pom.xml" />
+        <option value="$PROJECT_DIR$/Comparable and Comparator/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
   <component name="ProjectType">
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 9e2ae20..7a9a5ce 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,10 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/Hello-Java.iml" filepath="$PROJECT_DIR$/.idea/Hello-Java.iml" />
+      <module fileurl="file://$PROJECT_DIR$/Collections-in-java/Collections-in-java.iml" filepath="$PROJECT_DIR$/Collections-in-java/Collections-in-java.iml" />
+      <module fileurl="file://$PROJECT_DIR$/.idea/Java.iml" filepath="$PROJECT_DIR$/.idea/Java.iml" />
+      <module fileurl="file://$PROJECT_DIR$/Lambda-in-java/Lambda-in-java.iml" filepath="$PROJECT_DIR$/Lambda-in-java/Lambda-in-java.iml" />
+      <module fileurl="file://$PROJECT_DIR$/Thread-in-java/Tread.iml" filepath="$PROJECT_DIR$/Thread-in-java/Tread.iml" />
     </modules>
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 35eb1dd..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/Collections-in-java/src/com/lokesh/arraylist/ListInJava.java b/Collections-in-java/src/com/lokesh/arraylist/ListInJava.java
new file mode 100644
index 0000000..3d5fe3e
--- /dev/null
+++ b/Collections-in-java/src/com/lokesh/arraylist/ListInJava.java
@@ -0,0 +1,20 @@
+package com.lokesh.arraylist;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ListInJava {
+    public static void main(String[] args) {
+        List strlist = new ArrayList<>();
+
+        //add at last
+        strlist.add(0,"0");
+        strlist.add(1,"1");
+        //replace
+        strlist.set(1, "3");
+        strlist.add(2,"2");
+
+        strlist.remove(0);
+        strlist.forEach(System.out::println);
+    }
+}
\ No newline at end of file
diff --git a/Collections-in-java/src/com/lokesh/comparable/SortStudent.java b/Collections-in-java/src/com/lokesh/comparable/SortStudent.java
new file mode 100644
index 0000000..8059f69
--- /dev/null
+++ b/Collections-in-java/src/com/lokesh/comparable/SortStudent.java
@@ -0,0 +1,20 @@
+package com.lokesh.comparable;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class SortStudent {
+    public static void main(String[] args) {
+        List<Student> st = new ArrayList<>();
+        st.add(new Student(101, "Vimal Jakhar", 23));
+        st.add(new Student(102, "Dharmraj Daga", 20));
+        st.add(new Student(103, "Vimal Daga", 24));
+
+
+        Collections.sort(st);
+        for(Student student : st){
+            System.out.println(student.toString());
+        }
+    }
+}
diff --git a/Collections-in-java/src/com/lokesh/comparable/Student.java b/Collections-in-java/src/com/lokesh/comparable/Student.java
new file mode 100644
index 0000000..3b36588
--- /dev/null
+++ b/Collections-in-java/src/com/lokesh/comparable/Student.java
@@ -0,0 +1,24 @@
+package com.lokesh.comparable;
+
+public class Student implements Comparable<Student>{
+    private int stID;
+    private String name;
+    private int age;
+
+    public Student() {}
+    public Student(int stID, String name, int age) {
+        this.stID = stID;
+        this.name = name;
+        this.age = age;
+    }
+
+    public int compareTo(Student student) {
+        if(age == student.age)
+            return 0;
+        else if (age > student.age)
+            return 1;
+        else
+            return -1;
+    }
+
+}
diff --git a/Comparable and Comparator/pom.xml b/Comparable and Comparator/pom.xml
new file mode 100644
index 0000000..eb8e97a
--- /dev/null
+++ b/Comparable and Comparator/pom.xml	
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>Comparable and Comparator</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/Comparable and Comparator/src/main/java/org/comparable/Comparable01.java b/Comparable and Comparator/src/main/java/org/comparable/Comparable01.java
new file mode 100644
index 0000000..bf76870
--- /dev/null
+++ b/Comparable and Comparator/src/main/java/org/comparable/Comparable01.java	
@@ -0,0 +1,8 @@
+package org.comparable;
+
+
+public class Comparable01 {
+    public static void main(String[] args) {
+
+    }
+}
diff --git a/Comparable and Comparator/src/main/java/org/comparable/Main.java b/Comparable and Comparator/src/main/java/org/comparable/Main.java
new file mode 100644
index 0000000..a3b0c20
--- /dev/null
+++ b/Comparable and Comparator/src/main/java/org/comparable/Main.java	
@@ -0,0 +1,7 @@
+package org.comparable;
+
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/ExceptionHandling/pom.xml b/ExceptionHandling/pom.xml
new file mode 100644
index 0000000..06b2101
--- /dev/null
+++ b/ExceptionHandling/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>ExceptionHandling</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/ExceptionHandling/src/main/java/org/comparable/ExceptionDemo.java b/ExceptionHandling/src/main/java/org/comparable/ExceptionDemo.java
new file mode 100644
index 0000000..f7ba8a9
--- /dev/null
+++ b/ExceptionHandling/src/main/java/org/comparable/ExceptionDemo.java
@@ -0,0 +1,21 @@
+package org.comparable;
+
+public class ExceptionDemo {
+    public static void main(String[] args) {
+        int i = 9;
+        int j = 0;
+        int k = i/j;
+        int arr[] = {1,2,3,4};
+
+        try {
+            System.out.println(k);
+            System.out.println(arr[5]);
+        } catch(ArithmeticException e) {
+            System.out.println("check denominator again");
+        } catch(ArrayIndexOutOfBoundsException e) {
+            System.out.println("we can print within size of the array");
+        } catch (Exception e) {
+            System.out.println("something done wrong way!!");
+        }
+    }
+}
diff --git a/ExceptionHandling/src/main/java/org/comparable/Main.java b/ExceptionHandling/src/main/java/org/comparable/Main.java
new file mode 100644
index 0000000..a3b0c20
--- /dev/null
+++ b/ExceptionHandling/src/main/java/org/comparable/Main.java
@@ -0,0 +1,7 @@
+package org.comparable;
+
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/ExceptionHandling/target/classes/org/example/ExceptionDemo.class b/ExceptionHandling/target/classes/org/example/ExceptionDemo.class
new file mode 100644
index 0000000000000000000000000000000000000000..61458f0a5b909a75822c96ed2f25d8e0a6486e04
GIT binary patch
literal 1205
zcmaJ=YflqF6g|`KcH2@Of`Ggi6)C7xu|9Y<;3FZa)L4RP_%v*Xve535?N-1)#Ap0~
zi81~Ff0TN5OG-)5O=jlaJ9qA!bMEY~-`{@%$Rd|S3bP43#G@o0W6nS(jwgZn)WCck
z&kSVacy8c@ftLcYW!tg+Re@-FW?Mje?Ut25ciwi?W}~*Nye+v~Wu!OnTC%z=Jv;C(
zgPOl@*9AuMu2;#Z6InZ|s?6IHOC9;P>%37lcZnry(sl#}(mVMB`B`SF(y3&MzGpj?
zrQk}z>Jx2SYo6`z*OYHttxBvido9D0ryEXLofH~=VQ<}SIOTeKa(`QLdt8%Vg?RgJ
zKtdcg#|Fm%#~}rgo+l95VW_j{OY88xJPLUm7%?zOU8yI<6i61`hG(gFb|_Tq!hru=
zKskj@bQyS+!U7fzETyoF6@jrUId0%AFlg;7>(DGK$F13p^j*)C6>1qAXT#F%$NwjY
zz|^raE$Ns?6x}zEsjuyrb^D7l-96LaS0<^-Qwnocvc*DRxbCtYJW?^suA|Ij&!u@R
zPbVh@hW^=lfu5^!h1~;X`PV|l)4H!})Y)xt<FaM8oB0rc<oi&v#=bWpT@MQwA(JYf
zm6qNJ9#Ma~t>vx9g-LYqZwS5!*hX}5?xvUFD!A&i-yqJz?H<mtFc`%x+Nov&deKKO
zf!pY3goi~A8Z&`UJ&EP$%E)MS)%cMtMYTdn(+ed%Rw%`c!lL#Sk+BOzxeRIXIa+6!
zUexLK>KBNeVYunUL#MOpB<Y+Zig6;G=QY8agAuNIf`}r3xgO3sy%==vCJ<*v2c`%*
zL%8!~nkCm|+BrgAWBvy1Jc(_R&^E~g6hHD@mSX^etg{wccW7;f)(|a{#4tv<MzMua
zj8Oue=f-J8c<&}AXa#r|U{Y-jcbPj5?GHid2JQ(V4BQ8&sl0&)9McKbNHZ&fnZE=h
B36cN+

literal 0
HcmV?d00001

diff --git a/ExceptionHandling/target/classes/org/example/Main.class b/ExceptionHandling/target/classes/org/example/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..a605efc8a3f19bec6b72a7bb509f975771a926ce
GIT binary patch
literal 540
zcmZuu%TB^T6g|VErL_uz;9IFHbYV9pE--FPj0=1u7&fj3nA9QD4k^XQXX!!{7k+>r
zWxOpWh@p#n=bm%t+;gX2-yfd<j<9FLz>0+`Y6Yy?Si`!B4HKIT#)%ANe9Dk*>~|P)
zXSy#KiY*z6t8vg3(Jk*PLdq@O<Eq0Wnbf~vF20wel#6^%Jn>+tgm=kh*d(QZGDEF#
z*BbB#?kOJnUOSFt=r_|zJo4#oWe&|?xAi#ciF28Zwi3m|M8tuKf{85$+t^`nE`(CL
z{-`6>cTMa%sKaF_>3?nrnp(K-4n!}Wf!fcbSOoM0dQ3!h;#X?#hRnufS@3`ss-zmT
zFoQWvniOqXZOmH~F7ovF$(I4Oqd?K3%A?FE=MUb&UQ*hoXry2k3v_lS4U`wDvap0A
lA<5<ARE)4!WXjn$<fZ~PQKU+9j6Wh4N?0bGeip?HDnEpCa83XK

literal 0
HcmV?d00001

diff --git a/Lambda-in-java/src/com/lokesh/lambda/Category.java b/Lambda-in-java/src/com/lokesh/lambda/Category.java
new file mode 100644
index 0000000..23dff73
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/Category.java
@@ -0,0 +1,8 @@
+package com.lokesh.lambda;
+
+public enum Category {
+    FOOD,
+    UTENSILS,
+    CLEANING,
+    OFFICE
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/Product.java b/Lambda-in-java/src/com/lokesh/lambda/Product.java
new file mode 100644
index 0000000..d93c934
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/Product.java
@@ -0,0 +1,50 @@
+package com.lokesh.lambda;
+
+import java.math.BigDecimal;
+import java.util.Locale;
+import java.util.Objects;
+
+public class Product {
+    public final Category category;
+    public final String name;
+    public final BigDecimal price;
+
+    public Product(Category category, String name, BigDecimal price) {
+        this.category = category;
+        this.name = name;
+        this.price = price;
+    }
+
+    public Category getCategory() {
+        return category;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    @Override
+    public String toString() {
+        return String.format(Locale.US, "%-10s %-16s $%6.2f", category, name, price);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        Product product = (Product) o;
+
+        return category == product.category && name.equals(product.name) && price.equals(product.price);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(category, name, price);
+    }
+
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/ProductData.java b/Lambda-in-java/src/com/lokesh/lambda/ProductData.java
new file mode 100644
index 0000000..c94eb5b
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/ProductData.java
@@ -0,0 +1,46 @@
+package com.lokesh.lambda;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import static com.lokesh.lambda.Category.*;
+
+public class ProductData {
+    private static final List<Product> PRODUCTS = Arrays.asList(
+            new Product(FOOD, "Oranges", new BigDecimal("1.65")),
+            new Product(FOOD, "Gouda cheese", new BigDecimal("6.79")),
+            new Product(UTENSILS, "Plates", new BigDecimal("12.95")),
+            new Product(CLEANING, "Detergent", new BigDecimal("3.79")),
+            new Product(FOOD, "Soft drink", new BigDecimal("1.99")),
+            new Product(OFFICE, "Pencils", new BigDecimal("5.79")),
+            new Product(FOOD, "Rice", new BigDecimal("2.99")),
+            new Product(CLEANING, "Scourer", new BigDecimal("2.29")),
+            new Product(FOOD, "Milk", new BigDecimal("1.39")),
+            new Product(OFFICE, "Notebook", new BigDecimal("4.99")),
+            new Product(FOOD, "Tea", new BigDecimal("4.29")),
+            new Product(FOOD, "Tomato sauce", new BigDecimal("1.39")),
+            new Product(FOOD, "Peanut butter", new BigDecimal("2.39")),
+            new Product(FOOD, "Red bell pepper", new BigDecimal("0.99")),
+            new Product(UTENSILS, "Spoons", new BigDecimal("14.95")),
+            new Product(OFFICE, "Adhesive tape", new BigDecimal("5.39")),
+            new Product(CLEANING, "Dish brush", new BigDecimal("3.49")),
+            new Product(UTENSILS, "Knives", new BigDecimal("9.95")),
+            new Product(FOOD, "Brown bread", new BigDecimal("3.99")),
+            new Product(FOOD, "Potatoes", new BigDecimal("1.59")),
+            new Product(CLEANING, "Dishcloth", new BigDecimal("2.59")),
+            new Product(FOOD, "Apples", new BigDecimal("1.29")),
+            new Product(OFFICE, "Ballpoint pens", new BigDecimal("6.79")),
+            new Product(FOOD, "Spaghetti", new BigDecimal("2.79")),
+            new Product(UTENSILS, "Forks", new BigDecimal("14.95")),
+            new Product(UTENSILS, "Paper towel", new BigDecimal("3.69")),
+            new Product(FOOD, "Coffee", new BigDecimal("7.49")),
+            new Product(OFFICE, "Highlighter", new BigDecimal("2.29")),
+            new Product(FOOD, "Orange juice", new BigDecimal("3.49")),
+            new Product(FOOD, "Spring water", new BigDecimal("0.99")));
+
+    public static List<Product> getProducts() {
+        return new ArrayList<>(PRODUCTS);
+    }
+}
+
diff --git a/Lambda-in-java/src/com/lokesh/lambda/exercise/Calculator.java b/Lambda-in-java/src/com/lokesh/lambda/exercise/Calculator.java
new file mode 100644
index 0000000..ede74ca
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/exercise/Calculator.java
@@ -0,0 +1,16 @@
+package com.lokesh.lambda.exercise;
+interface IntegerMath{
+    int operation(int a, int b);
+}
+public class Calculator {
+    public int operationBinary(int a, int b, IntegerMath op) {
+        return op.operation(a,b);
+    }
+    public static void main(String[] args) {
+        Calculator myApp = new Calculator();
+        IntegerMath addition = ((a, b) -> a+b);
+        IntegerMath substract = ((a, b) -> a-b);
+        System.out.println("20+30 = "+ myApp.operationBinary(20,30, addition));
+        System.out.println("4-2 = "+ myApp.operationBinary(4,2, substract));
+    }
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExample4.java b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExample4.java
new file mode 100644
index 0000000..e2d27c0
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExample4.java
@@ -0,0 +1,38 @@
+package com.lokesh.lambda.exercise;
+
+import com.lokesh.lambda.Product;
+import com.lokesh.lambda.ProductData;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class LambdaExample4 {
+    public static void main(String[] args) {
+        List<Product> products = ProductData.getProducts();
+
+//        List<Product> cheapProducts = products.stream();
+
+
+        BigDecimal priceLimit = new BigDecimal("6");
+
+        int numberOfCheapProducts = 0;
+
+        // Check if there are cheap products
+
+        for ( Product product : products) {
+            if (product.getPrice().compareTo(priceLimit) < 0) {
+                numberOfCheapProducts++;
+            }
+        }
+        //using lambda expression
+//        Because local variables are effectively final, you cannot modify them inside a lambda expression.
+//        products.forEach(product -> {
+//            if (product.getPrice().compareTo(priceLimit) < 0) {
+//                numberOfCheapProducts++;// Error: Variable must be effectively final
+//            }
+//        });
+
+        System.out.println("There are " + numberOfCheapProducts + " cheap products");
+    }
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise1.java b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise1.java
new file mode 100644
index 0000000..05944bb
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise1.java
@@ -0,0 +1,36 @@
+package com.lokesh.lambda.exercise;
+
+import com.lokesh.lambda.Product;
+import com.lokesh.lambda.ProductData;
+
+import java.util.Comparator;
+import java.util.List;
+
+public class LambdaExercise1 {
+
+    public static void main(String[] args) {
+        List<Product> products = ProductData.getProducts();
+
+        // Interface Comparator implemented with an anonymous class.
+//        products.sort(new Comparator<Product>() {
+//            @Override
+//            public int compare(Product p1, Product p2) {
+//                return p1.getPrice().compareTo(p2.getPrice());
+//            }
+//        });
+
+        // Interface Comparator implemented with a lambda expression.
+        products.sort((p1, p2) -> p1.getPrice().compareTo(p2.getPrice()));
+
+        // The same with a more verbose syntax:
+        // - You can optionally specify the type of the parameters
+        // - The body can be a block between { and } or a single expression
+        products.sort((Product p1, Product p2) -> {
+            return p1.getPrice().compareTo(p2.getPrice());
+        });
+
+        for (Product product : products) {
+            System.out.println(product);
+        }
+    }
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise101.java b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise101.java
new file mode 100644
index 0000000..8e89d50
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise101.java
@@ -0,0 +1,24 @@
+package com.lokesh.lambda.exercise;
+
+import com.lokesh.lambda.Product;
+import com.lokesh.lambda.ProductData;
+
+import java.util.Comparator;
+import java.util.List;
+
+public class LambdaExercise101 {
+    public static void main(String[] args) {
+        List<Product> PRODUCTS = ProductData.getProducts();
+
+        PRODUCTS.sort(new Comparator<Product>() {
+            @Override
+            public int compare(Product p1, Product p2) {
+                return p1.getPrice().compareTo(p2.getPrice());
+            }
+        });
+
+        for (Product product: PRODUCTS) {
+            System.out.println(product);
+        }
+    }
+}
diff --git a/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise104.java b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise104.java
new file mode 100644
index 0000000..8290220
--- /dev/null
+++ b/Lambda-in-java/src/com/lokesh/lambda/exercise/LambdaExercise104.java
@@ -0,0 +1,26 @@
+package com.lokesh.lambda.exercise;
+
+import com.lokesh.lambda.Product;
+import com.lokesh.lambda.ProductData;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class LambdaExercise104 {
+    public static void main(String[] args) {
+        List<Product> Products = ProductData.getProducts();
+
+        BigDecimal priceLimit = new BigDecimal(5);
+
+        AtomicInteger counter = new AtomicInteger();
+        List<Product> cheapProduct = new ArrayList<>();
+        Products.parallelStream().forEach(product -> {
+                if (product.getPrice().compareTo(priceLimit) <0) {
+                    cheapProduct.add(product);
+            }
+        });
+        cheapProduct.forEach(product -> System.out.println(product));
+    }
+}
diff --git a/Streams/.idea/.gitignore b/Streams/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Streams/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Streams/.idea/compiler.xml b/Streams/.idea/compiler.xml
new file mode 100644
index 0000000..d698f18
--- /dev/null
+++ b/Streams/.idea/compiler.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="Streams" />
+      </profile>
+    </annotationProcessing>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/.idea/encodings.xml b/Streams/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/Streams/.idea/encodings.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/.idea/jarRepositories.xml b/Streams/.idea/jarRepositories.xml
new file mode 100644
index 0000000..bbf27a5
--- /dev/null
+++ b/Streams/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="macysSnapshots" />
+      <option name="name" value="Macys Snapshots" />
+      <option name="url" value="http://artifacts.devops.fds.com/public-snapshots" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="http://artifacts.devops.fds.com/public" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/.idea/jpa-buddy.xml b/Streams/.idea/jpa-buddy.xml
new file mode 100644
index 0000000..966d5f5
--- /dev/null
+++ b/Streams/.idea/jpa-buddy.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="JpaBuddyIdeaProjectConfig">
+    <option name="renamerInitialized" value="true" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/.idea/misc.xml b/Streams/.idea/misc.xml
new file mode 100644
index 0000000..3506359
--- /dev/null
+++ b/Streams/.idea/misc.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="openjdk-18" project-jdk-type="JavaSDK" />
+  <component name="ProjectType">
+    <option name="id" value="jpab" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/.idea/uiDesigner.xml b/Streams/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/Streams/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Streams/pom.xml b/Streams/pom.xml
new file mode 100644
index 0000000..35499b1
--- /dev/null
+++ b/Streams/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>Streams</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>3.0.0</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+            <version>3.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.13.2</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>5.8.1</version>
+            <scope>test</scope>
+        </dependency>
+
+
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/Streams/src/main/java/com/lokesh/streams/BagStream.java b/Streams/src/main/java/com/lokesh/streams/BagStream.java
new file mode 100644
index 0000000..287d6bc
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/BagStream.java
@@ -0,0 +1,4 @@
+package com.lokesh.streams;
+
+public class BagStream {
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.java b/Streams/src/main/java/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.java
new file mode 100644
index 0000000..9023cf0
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.java
@@ -0,0 +1,19 @@
+package com.lokesh.streams.ConvertForLoopIntoStreams;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ForLoopStreams {
+    public static void main(String[] args) {
+//        List<Integer> ls = Arrays.asList(1, 2,4,3);
+//
+//        List<Integer> newList = ls.stream().collect(Collectors.toList());
+//
+//        newList.forEach(System.out::print);
+
+
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/Main.java b/Streams/src/main/java/com/lokesh/streams/Main.java
new file mode 100644
index 0000000..951c8b9
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/Main.java
@@ -0,0 +1,7 @@
+package com.lokesh.streams;
+
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/Bag.java b/Streams/src/main/java/com/lokesh/streams/bagstream/Bag.java
new file mode 100644
index 0000000..d9eae35
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/Bag.java
@@ -0,0 +1,35 @@
+package com.lokesh.streams.bagstream;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Bag implements ShippingProviderComponent {
+    public static void main(String[] args) {
+        ShippingProviderComponentImpl s = new ShippingProviderComponentImpl();
+        BagCheckoutBO bagCheckoutBO = new BagCheckoutBO();
+
+        ShippingMethodBO shippingMethodBO = new ShippingMethodBO();
+
+        shippingMethodBO.setSurcharge(1.0);
+        shippingMethodBO.setCode("LO12");
+
+        ShipmentOptionBO shipmentOptionBO = new ShipmentOptionBO();
+
+
+
+        List<ShipmentOptionBO> l1 = Arrays.asList(new ShipmentOptionBO(new ShippingMethodBO(1.0, "LO12"), 1.2, 32.0));
+
+        List<ShipmentBO> l2 = Arrays.asList(new ShipmentBO(l1, 3.2));
+
+        List<BagCheckoutBO> l3 = Arrays.asList(new BagCheckoutBO(l2, 124, "MCOM", "1.0.2", "302022"));
+
+        System.out.println();
+
+        bagCheckoutBO.setChannelType("MCOM");
+        bagCheckoutBO.setRegionCode("302022");
+        bagCheckoutBO.setVersion("1.0.2");
+        bagCheckoutBO.setStoreLocationNumber(124);
+        bagCheckoutBO.setShipments(l2);
+        s.updateShippingPriceForSDDFreeShipItems(bagCheckoutBO);
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/BagCheckoutBO.java b/Streams/src/main/java/com/lokesh/streams/bagstream/BagCheckoutBO.java
new file mode 100644
index 0000000..f7383a8
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/BagCheckoutBO.java
@@ -0,0 +1,74 @@
+package com.lokesh.streams.bagstream;
+
+import java.util.List;
+
+public class BagCheckoutBO {
+    private List<ShipmentBO> shipments;
+    private long storeLocationNumber;
+    private String channelType;
+    private String version;
+    private String regionCode;
+
+    public BagCheckoutBO() {
+
+    }
+
+    public BagCheckoutBO(List<ShipmentBO> shipments, long storeLocationNumber, String channelType, String version, String regionCode) {
+        this.shipments = shipments;
+        this.storeLocationNumber = storeLocationNumber;
+        this.channelType = channelType;
+        this.version = version;
+        this.regionCode = regionCode;
+    }
+
+    public List<ShipmentBO> getShipments() {
+        return shipments;
+    }
+
+    public void setShipments(List<ShipmentBO> shipments) {
+        this.shipments = shipments;
+    }
+
+    public long getStoreLocationNumber() {
+        return storeLocationNumber;
+    }
+
+    public void setStoreLocationNumber(long storeLocationNumber) {
+        this.storeLocationNumber = storeLocationNumber;
+    }
+
+    public String getChannelType() {
+        return channelType;
+    }
+
+    public void setChannelType(String channelType) {
+        this.channelType = channelType;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public String getRegionCode() {
+        return regionCode;
+    }
+
+    public void setRegionCode(String regionCode) {
+        this.regionCode = regionCode;
+    }
+
+    @Override
+    public String toString() {
+        return "BagCheckoutBO{" +
+                "shipments=" + shipments +
+                ", storeLocationNumber=" + storeLocationNumber +
+                ", channelType='" + channelType + '\'' +
+                ", version='" + version + '\'' +
+                ", regionCode='" + regionCode + '\'' +
+                '}';
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/Data.java b/Streams/src/main/java/com/lokesh/streams/bagstream/Data.java
new file mode 100644
index 0000000..3973ca3
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/Data.java
@@ -0,0 +1,17 @@
+package com.lokesh.streams.bagstream;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Data {
+    private static final List<ShipmentOptionBO> SHIPMENT_OPTION_BOS = Arrays.asList(
+      new ShipmentOptionBO(new ShippingMethodBO(0.0, "LO12"))
+    );
+    private static final List<ShipmentBO> SHIPMENT_BOS = Arrays.asList(
+      new ShipmentBO(SHIPMENT_OPTION_BOS, 2.34)
+    );
+
+    private static final List<BagCheckoutBO> BAG_CHECKOUT_BOS = Arrays.asList(
+        new BagCheckoutBO(SHIPMENT_BOS, 11, "Hindi", "2.0.1", "302029")
+    );
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentBO.java b/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentBO.java
new file mode 100644
index 0000000..0b6acd2
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentBO.java
@@ -0,0 +1,42 @@
+package com.lokesh.streams.bagstream;
+
+import java.util.List;
+
+public class ShipmentBO {
+    private List<ShipmentOptionBO> availableShippingOptions;
+
+    private Double addressFee;
+
+    public ShipmentBO(List<ShipmentOptionBO> availableShippingOptions, Double addressFee) {
+        this.availableShippingOptions = availableShippingOptions;
+        this.addressFee = addressFee;
+    }
+
+    public List<ShipmentOptionBO> getAvailableShippingOptions() {
+        return availableShippingOptions;
+    }
+
+    public void setAvailableShippingOptions(List<ShipmentOptionBO> availableShippingOptions) {
+        this.availableShippingOptions = availableShippingOptions;
+    }
+
+    public ShipmentBO() {
+        this.availableShippingOptions = availableShippingOptions;
+    }
+
+    public Double getAddressFee() {
+        return addressFee;
+    }
+
+    public void setAddressFee(Double addressFee) {
+        this.addressFee = addressFee;
+    }
+
+    @Override
+    public String toString() {
+        return "ShipmentBO{" +
+                "availableShippingOptions=" + availableShippingOptions +
+                ", addressFee=" + addressFee +
+                '}';
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentOptionBO.java b/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentOptionBO.java
new file mode 100644
index 0000000..dba8755
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/ShipmentOptionBO.java
@@ -0,0 +1,54 @@
+package com.lokesh.streams.bagstream;
+
+public class ShipmentOptionBO {
+    private ShippingMethodBO shipmentMethod;
+    private Double upChargeFee;
+
+    private Double price;
+
+    public ShipmentOptionBO(ShippingMethodBO shipmentMethod, Double upChargeFee, Double price) {
+        this.shipmentMethod = shipmentMethod;
+        this.upChargeFee = upChargeFee;
+        this.price = price;
+    }
+
+    public ShipmentOptionBO() {
+
+    }
+
+    public ShipmentOptionBO(ShippingMethodBO lo12) {
+    }
+
+    public ShippingMethodBO getShipmentMethod() {
+        return shipmentMethod;
+    }
+
+    public void setShipmentMethod(ShippingMethodBO shipmentMethod) {
+        this.shipmentMethod = shipmentMethod;
+    }
+
+    public Double getUpChargeFee() {
+        return upChargeFee;
+    }
+
+    public void setUpChargeFee(Double upChargeFee) {
+        this.upChargeFee = upChargeFee;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    @Override
+    public String toString() {
+        return "ShipmentOptionBO{" +
+                "shipmentMethod=" + shipmentMethod +
+                ", upChargeFee=" + upChargeFee +
+                ", price=" + price +
+                '}';
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingMethodBO.java b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingMethodBO.java
new file mode 100644
index 0000000..cf59e72
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingMethodBO.java
@@ -0,0 +1,31 @@
+package com.lokesh.streams.bagstream;
+
+public class ShippingMethodBO {
+    private double surcharge = 0.0;
+    private String code = "";
+
+    public ShippingMethodBO() {
+
+    }
+
+    public ShippingMethodBO(double surcharge, String code) {
+        this.surcharge = surcharge;
+        this.code = code;
+    }
+
+    public double getSurcharge() {
+        return surcharge;
+    }
+
+    public void setSurcharge(double surcharge) {
+        this.surcharge = surcharge;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponent.java b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponent.java
new file mode 100644
index 0000000..b9f69be
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponent.java
@@ -0,0 +1,4 @@
+package com.lokesh.streams.bagstream;
+
+public interface ShippingProviderComponent {
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.java b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.java
new file mode 100644
index 0000000..da42cb2
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.java
@@ -0,0 +1,33 @@
+package com.lokesh.streams.bagstream;
+
+public class ShippingProviderComponentImpl implements ShippingProviderComponent{
+    String SDD_SHIPPING_METHOD = "S";
+    public void updateShippingPriceForSDDFreeShipItems(BagCheckoutBO orderBO) {
+
+
+        orderBO.getShipments().stream()
+                .filter(shipmentBO -> shipmentBO.getAvailableShippingOptions() != null)
+                .flatMap(shipmentBO -> shipmentBO.getAvailableShippingOptions().stream())
+                .filter(shipmentOptionBO -> shipmentOptionBO.getShipmentMethod() != null && SDD_SHIPPING_METHOD
+                        .equalsIgnoreCase(shipmentOptionBO.getShipmentMethod().getCode()))
+                .forEach(shipmentOptionBO -> {
+                    shipmentOptionBO.setUpChargeFee(0.0);
+                    shipmentOptionBO.getShipmentMethod().setSurcharge(0.0);
+                    shipmentOptionBO.setPrice(0.0);
+                });
+
+
+//        for (ShipmentBO shipmentBO : orderBO.getShipments()) {
+//            if (shipmentBO.getAvailableShippingOptions() != null) {
+//                for (ShipmentOptionBO shipmentOptionBO : shipmentBO.getAvailableShippingOptions()) {
+//                    if (shipmentOptionBO.getShipmentMethod() != null && SDD_SHIPPING_METHOD
+//                            .equalsIgnoreCase(shipmentOptionBO.getShipmentMethod().getCode())) {
+//                        shipmentOptionBO.setUpChargeFee(0.0);
+//                        shipmentOptionBO.getShipmentMethod().setSurcharge(0.0);
+//                        shipmentOptionBO.setPrice(0.0);
+//                    }
+//                }
+//            }
+//        }
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/forEach/ForEach.java b/Streams/src/main/java/com/lokesh/streams/forEach/ForEach.java
new file mode 100644
index 0000000..88c1452
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/forEach/ForEach.java
@@ -0,0 +1,38 @@
+package com.lokesh.streams.forEach;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Consumer;
+
+public class ForEach {
+    public static void main(String[] args) {
+        List<Integer> nums = Arrays.asList(4,5,3,2,1);
+
+        //lets see the forEach loop in more expressive
+        Consumer<Integer> cons = new Consumer<Integer>() {
+            @Override
+            public void accept(Integer integer) {
+                System.out.println(integer);
+            }
+        };
+        nums.forEach(cons);
+        System.out.println(" ");
+        //foreach loop is use lambda expression
+        nums.forEach(n -> System.out.println(n));
+        System.out.println("break");
+        nums.forEach(System.out::println);
+        System.out.println("break");
+        //simple for loop
+        //it will print the values of i indexed
+        for(int i = 0; i < nums.size(); i++) {
+            System.out.println(nums.get(i));
+        }
+        //enhanced for loop
+        //todo: itrator jump over the values not index
+        for(int it : nums) {
+            System.out.print(it);
+        }
+        // above both loop are external for loop which are introduced earlier of java 8
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/nestedforloop/Address.java b/Streams/src/main/java/com/lokesh/streams/nestedforloop/Address.java
new file mode 100644
index 0000000..061714a
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/nestedforloop/Address.java
@@ -0,0 +1,54 @@
+package com.lokesh.streams.nestedforloop;
+
+public class Address {
+    private int P_No;
+    private String Street_Name;
+    private String City;
+    public Address(int p_No, String street_Name, String city) {
+        P_No = p_No;
+        Street_Name = street_Name;
+        City = city;
+    }
+
+    public Address() {
+
+    }
+
+    public int getP_No() {
+        return P_No;
+    }
+
+    public void setP_No(int p_No) {
+        P_No = p_No;
+    }
+
+    public String getStreet_Name() {
+        return Street_Name;
+    }
+
+    public void setStreet_Name(String street_Name) {
+        Street_Name = street_Name;
+    }
+
+    public String getCity() {
+        return City;
+    }
+
+    public void setCity(String city) {
+        City = city;
+    }
+
+
+//    @Override
+//    public String toString() {
+//        return super.toString();
+//    }
+
+    @Override
+    public String toString() {
+        return
+                "P_No=" + P_No +
+                ", Street_Name='" + Street_Name + '\'' +
+                ", City='" + City + '\'';
+    }
+}
\ No newline at end of file
diff --git a/Streams/src/main/java/com/lokesh/streams/nestedforloop/NestedForLoop.java b/Streams/src/main/java/com/lokesh/streams/nestedforloop/NestedForLoop.java
new file mode 100644
index 0000000..22afd59
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/nestedforloop/NestedForLoop.java
@@ -0,0 +1,102 @@
+package com.lokesh.streams.nestedforloop;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+
+public class NestedForLoop {
+    int gridSize = 3;
+    int count = 0;
+    private List<Integer> createGrid() {
+        List<Integer> spaces = new ArrayList<>();
+        for(int i = 0; i < gridSize; i++) {
+            spaces.add(count++);
+        }
+        return spaces;
+    }
+
+    private List<Integer> createGridStream() {
+        Stream<Integer> infiniteStream = Stream.iterate(0, i->i+1);
+
+        List<Integer> spaces = infiniteStream.limit(gridSize).collect(Collectors.toList());
+        return spaces;
+    }
+    //nested for loop
+
+    public static void main(String[] args) {
+        NestedForLoop a = new NestedForLoop();
+//        Student st = new Student();
+        System.out.println(a.createGrid());
+        System.out.println("------------------------------");
+        System.out.println("    Simplified by Stream");
+        System.out.println("------------------------------");
+        System.out.println(a.createGridStream());
+
+        System.out.println("------------------------------");
+        System.out.println("    Nested for loop");
+        System.out.println("------------------------------");
+//        System.out.println(createStudent());
+
+        System.out.println("------------------------------");
+        System.out.println("    Streams");
+        System.out.println("------------------------------");
+
+            List<Student> students = StudentData.getStudents();
+            students.stream().forEach(System.out::println);
+        System.out.println("------------------------------");
+        System.out.println("    Using For loop");
+        System.out.println("------------------------------");
+
+//        List<Address> addresses = new ArrayList<>();
+//        addresses.add(new Address(12, "lokesh", "jaipur"));
+
+
+
+//        studentList.stream().
+//                filter(student -> student.getStudentAddress().stream().filter(address -> address.getCity()))
+
+
+//            for(Student student: StudentData.getStudents()) {
+//                for(Address address: student.getStudentAddress()) {
+//                    if(address.getCity() == "kondapur")
+//                        System.out.println(student.getName());
+//                }
+//            }
+
+        System.out.println(
+                Arrays.asList(Arrays.asList(1,2,3,4,5),Arrays.asList(6,7,8,9,10)).stream()
+                        .flatMap(integers -> integers.stream())
+                        .collect(Collectors.toList()));
+
+        System.out.println("--------------------------------------------------------------");
+        System.out.println("    print students names who belongs kondapur Using streams");
+        System.out.println("--------------------------------------------------------------");
+
+
+        StudentData.getStudents().stream()
+                .filter(student -> student.getStudentAddress().stream()
+                        .map(address -> {
+                            try {
+                                return address.getCity();
+                            } catch (Exception e) {
+                                throw new RuntimeException(e);
+                            }
+                        })
+                        .collect(Collectors.toList())
+                        .contains("kondapur"))
+                .map(student -> {
+                    try {
+                        return student.getName();
+                    } catch (Exception e) {
+                        throw new RuntimeException(e);
+                    }
+                })
+                .collect(Collectors.toList())
+                .forEach(System.out::println);
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/nestedforloop/Student.java b/Streams/src/main/java/com/lokesh/streams/nestedforloop/Student.java
new file mode 100644
index 0000000..300a098
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/nestedforloop/Student.java
@@ -0,0 +1,55 @@
+package com.lokesh.streams.nestedforloop;
+
+import java.util.List;
+
+public class Student {
+
+    private String name;
+    private long ROLL_No;
+
+    private List<Address> studentAddress;
+
+
+    public Student(String name, long ROLL_No, List<Address> studentAddress) {
+        this.name = name;
+        this.ROLL_No = ROLL_No;
+        this.studentAddress = studentAddress;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public long getROLL_No() {
+        return ROLL_No;
+    }
+
+    public void setROLL_No(long ROLL_No) {
+        this.ROLL_No = ROLL_No;
+    }
+
+    public List<Address> getStudentAddress() {
+        return studentAddress;
+    }
+
+    public void setStudentAddress(List<Address> studentAddress) {
+        this.studentAddress = studentAddress;
+    }
+    //    @Override
+//    public String toString() {
+//        return String.format(name, ROLL_No, studentAddress);
+//    }
+
+    @Override
+    public String toString() {
+        return "Student{" +
+                "name='" + name + '\'' +
+                ", ROLL_No=" + ROLL_No +
+                ", studentAddress=" + studentAddress +
+                '}';
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/nestedforloop/StudentData.java b/Streams/src/main/java/com/lokesh/streams/nestedforloop/StudentData.java
new file mode 100644
index 0000000..92528dc
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/nestedforloop/StudentData.java
@@ -0,0 +1,21 @@
+package com.lokesh.streams.nestedforloop;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+public class StudentData {
+
+    private static final List<Student> STUDENTS = Arrays.asList(
+            new Student("", 123, Arrays.asList(new Address(1, "Hanuman Nagar", "kondapur"), new Address(2, "mansarovr", "Jaipur"))),
+            new Student("Ankit", 124, Arrays.asList(new Address(1, "Shilpa Park", "kondapur"))),
+            new Student("Dipankar", 123, Arrays.asList(new Address(1, "Bagam Bazar", "Udaipur")))
+    );
+
+    static List<Student> getStudents() {
+        return new ArrayList<>(STUDENTS);
+    }
+
+
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/streammain/StreamObject.java b/Streams/src/main/java/com/lokesh/streams/streammain/StreamObject.java
new file mode 100644
index 0000000..ce0d0a0
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/streammain/StreamObject.java
@@ -0,0 +1,39 @@
+package com.lokesh.streams.streammain;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class StreamObject {
+    public static void main(String[] args) {
+        //todo : create streams
+
+        //1 blank stream
+        Stream<Object> emptyStream = Stream.empty();
+        emptyStream.forEach(e-> System.out.println(e));
+
+        String name[] = {"Taqui", "dev", "Tiger", "Lokesh"};
+        //2
+        Stream<String> stream1 = Stream.of(name);
+//        stream1.forEach(e-> System.out.println(e));
+
+        Stream<Object> objectStream =Stream.builder().build();
+
+        List<String> newList = stream1.filter(e->e.startsWith("T"))
+                .map(String::toUpperCase)
+                .collect(Collectors.toList());
+        System.out.println(newList);
+
+        List<Integer> list = Arrays.asList(1,3,4,2,0, 12, 9);
+        List<Integer> evenItem = list.stream().filter(i -> i%3 == 0 && i!=0)
+                .sorted()
+                .map(i->i*2)
+                .peek(e-> System.out.println("filter data: "+ e))
+                .collect(Collectors.toList());
+        System.out.println(evenItem);
+
+        int sum = list.stream().reduce(4, (ele1, ele2)->ele2+ele1);
+        System.out.println(sum);
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/streammain/streammain01.java b/Streams/src/main/java/com/lokesh/streams/streammain/streammain01.java
new file mode 100644
index 0000000..3f18ca1
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/streammain/streammain01.java
@@ -0,0 +1,33 @@
+package com.lokesh.streams.streammain;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class streammain01 {
+    public static void main(String[] args) {
+        //todo 1: create a list and filter all even numbers from list
+
+        List<Integer> list1 = Arrays.asList(2, 23, 24,65,3,28);
+        //todo 2: without stream
+        List<Integer> listOfEvens = new ArrayList<>();
+        System.out.println("list without streams");
+        for (Integer i : list1) {
+            if(i%2==0) {
+                listOfEvens.add(i);
+            }
+        }
+        System.out.println(list1);
+        System.out.println("list of even");
+        listOfEvens.forEach(ele-> System.out.println(ele));
+
+        //todo 3: with stream
+        //Stream<Integer> stream = list1.stream();
+        List<Integer> streamList = list1.stream().filter(integer -> integer%2 ==0).collect(Collectors.toList());
+        System.out.println(streamList);
+
+
+    }
+}
diff --git a/Streams/src/main/java/com/lokesh/streams/streamsapi/DemoStreams.java b/Streams/src/main/java/com/lokesh/streams/streamsapi/DemoStreams.java
new file mode 100644
index 0000000..ac491b9
--- /dev/null
+++ b/Streams/src/main/java/com/lokesh/streams/streamsapi/DemoStreams.java
@@ -0,0 +1,59 @@
+package com.lokesh.streams.streamsapi;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
+
+public class DemoStreams {
+    public static void main(String[] args) {
+        List<Integer> nums = Arrays.asList(3,1,6,4,5);
+
+        //Stream<Integer> data = nums.stream();
+//        Stream<Integer> sortedData = data.sorted();
+//        sortedData.forEach(n-> System.out.println(n));
+
+        // now we want to double the values so how we can do this
+        //todo: 1. we can do this task using external loop
+//        for(int n = nums) {
+//            System.out.println(n*2);
+//        }
+        //todo: 2. using stream
+        //Stream<Integer> mappedData =  data.map(n->n*2);
+        //mappedData.forEach(n-> System.out.println(n));
+
+        //todo: lets do complete task in single line ..lets do that
+//        nums.stream().sorted().map(n->n*2).forEach(n-> System.out.println(n));
+        //todo: lets make it more readable
+        nums.stream()
+                .sorted()
+                .map(n->n*2)
+                .forEach(n-> System.out.println(n));
+
+        //todo: lets do filter task on given list
+        //?
+        System.out.println("filter in stream");
+
+        Predicate<Integer> fil = new Predicate<Integer>() {
+            @Override
+            public boolean test(Integer n) {
+                return n%2 == 0;
+            }
+        };
+
+        nums.stream()
+                //.filter(fil)
+                .filter(n->n%2 == 0)
+                .sorted()
+                .map(n->n*2)
+                .forEach(n-> System.out.println(n));
+
+        int sum = nums.stream()
+                .filter(n->n%2 == 0)
+                .sorted()
+                .map(n->n*2)
+                .reduce(0, (c,e)-> c+e);
+        System.out.println("sum of " + sum);
+    }
+}
diff --git a/Streams/src/test/java/com/lokesh/streams/bagstream/BeforeEach.java b/Streams/src/test/java/com/lokesh/streams/bagstream/BeforeEach.java
new file mode 100644
index 0000000..a6ae323
--- /dev/null
+++ b/Streams/src/test/java/com/lokesh/streams/bagstream/BeforeEach.java
@@ -0,0 +1,4 @@
+package com.lokesh.streams.bagstream;
+
+public @interface BeforeEach {
+}
diff --git a/Streams/src/test/java/com/lokesh/streams/bagstream/ShippingProviderComponentImplTest.java b/Streams/src/test/java/com/lokesh/streams/bagstream/ShippingProviderComponentImplTest.java
new file mode 100644
index 0000000..4593b57
--- /dev/null
+++ b/Streams/src/test/java/com/lokesh/streams/bagstream/ShippingProviderComponentImplTest.java
@@ -0,0 +1,38 @@
+package com.lokesh.streams.bagstream;
+
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+//import static org.junit.jupiter.api.Assertions.*;
+class ShippingProviderComponentImplTest {
+    @InjectMocks
+    ShippingProviderComponentImpl systemUnderTest;
+    @BeforeEach
+    void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+    @Test
+public void updateShippingPriceForSDDFreeShipItemsTest() {
+    BagCheckoutBO orderBO = new BagCheckoutBO();
+    orderBO.setStoreLocationNumber(123l);
+
+    List<ShipmentBO> shipmentBOList = new ArrayList<>();
+    ShipmentBO shipmentBO = new ShipmentBO();
+    shipmentBOList.add(shipmentBO);
+    orderBO.setShipments(shipmentBOList);
+    List<ShipmentOptionBO> availableShippingOptions = new ArrayList<>();
+    ShipmentOptionBO shipmentOptionBO = new ShipmentOptionBO();
+    shipmentOptionBO.setPrice(34.56);
+    shipmentOptionBO.setUpChargeFee(23.56);
+    ShippingMethodBO shipmentMethod = new ShippingMethodBO();
+    shipmentMethod.setCode("S");
+    shipmentOptionBO.setShipmentMethod(shipmentMethod);
+    availableShippingOptions.add(shipmentOptionBO);
+    shipmentBO.setAvailableShippingOptions(availableShippingOptions);
+//    systemUnderTest.updateShippingPriceForSDDFreeShipItems(orderBO);
+}
+}
\ No newline at end of file
diff --git a/Streams/target/classes/com/lokesh/streams/BagStream.class b/Streams/target/classes/com/lokesh/streams/BagStream.class
new file mode 100644
index 0000000000000000000000000000000000000000..6209f7b7f675b568a777bf3b396a1518d951c22c
GIT binary patch
literal 290
zcmaJ+yKcfj5S;Y`6Y~@`LQ0oVa19+11(8x&P=M&q&Iyj#KFK!xS1Ke5K7fxx>{(Gt
zcBR>!S!s6ncE4N!OwkYFzzyKF;iEz5ALL1jROUOeiVrHO2#pV&>uOGL-`=+YnuK9u
zGLf1eRqjPu6-s8MSjgSFZVBF}`BsEpq;s`AX0a+ZGEP|;L?)5xRu<awKhdl9x+ILE
zXQnekxHiWkQD53Rb^q5*?7?_Nz<<~vPX2`Pg_)>1;E&IsUltsMjCKsTXfd|y-sjq3
J#@37udJmihKKTFu

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.class b/Streams/target/classes/com/lokesh/streams/ConvertForLoopIntoStreams/ForLoopStreams.class
new file mode 100644
index 0000000000000000000000000000000000000000..42454598410085c723ae47eb673d753b1002b42b
GIT binary patch
literal 475
zcmbtRJx{|h5PeS52122bAa=GEB(kstSSnRQieM<p!sG-ibxCaGr2Su=kQn#@{3ygZ
zL;?gGmVBps@15_%Z|^U!0M2pf!$Hr3J47D?hW#a9^Qh#ih;Fl`$Qy>ig;cV+V(5)0
zsfR6wIM-EF>PJy8qPj7HS9LViYAsAN(<agS=~^{<-Z352g$(XgKM00VB9*vVRhck%
zJSzza5}orh<wn}L1KnmJYlh3@A2nktT5+iuj>h-N*M!uPR7E^ViRY%EGT|RIgFn|R
zlZ%<OU4}pBIkV5<7#{7>9tX^BlI%7`5qU<wfAS2rX=$IVr9pxnvcpdS`P~-V!-x=@
Wd`j2qekBIq66wou&<X>x4#E$V=56u-

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/Main.class b/Streams/target/classes/com/lokesh/streams/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..d73bfd51af22d8d310a37cb52b0ded4b66e1b417
GIT binary patch
literal 554
zcmZ{hO;5r=5Qg97tF%@@5D-7X6L_!}6Au_KCdNbkNHAPHEp-EnZP&C#<ImEACLa6&
z{wU*YF;NrT!))fAd7qule0;vW1K7uog$%L=ayIfPFq9|!o;yAdN6y7?BD{p5a418W
z95G}&-GPZBOaqpU1=xSu`;T!V0_svzGS%D^B$aa+$uQ|Bk>EkEh$RO5RQSGXJ*ddP
zX<H~`*+9ic6)OzYIW7j{PBZ+Fu$>t<9gv_h9QC>b19gUmrvk@Uw;~=par#{BoN-B}
z+_Ab53?)~F;(QtmMRdi7J}DJfdE6iHNb3As%q3$PGc?_Qcs&9JDYxFao;MBEc{CzK
zbxxVV>Z@twi4&<OF!h9c`qOBmMyt>#1E!Zju|b(bH={eh`wI4ymRBk2GLS`+qCIQC
s8rCT@v4KrewD}-~k@gIuviO414?r)TsI<?*FNldPY?IE=qL@MZ3v2&%`~Uy|

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/Bag.class b/Streams/target/classes/com/lokesh/streams/bagstream/Bag.class
new file mode 100644
index 0000000000000000000000000000000000000000..d52364f4300045caca4c4a07e9bc87a3fa167fc3
GIT binary patch
literal 2575
zcmb7GNq5^+6#kUKa#W>BUAHu)LnyR$S|`p>rZ}V-OrXK3LtG4@Oo}6HwYFtsIS?o_
zTVTV6u3*DCELarIaSA!`1Nb}aIeb^L6T2yHYM=9-bcgQ_@80|L_rHJq1>h3C($IlU
z6<s>I5m3;7!`Lul1*4RUrPgkkSyw?|$|_mzw1UpaP)0>i!DQAh#tQaLvyzWhT*owu
zmDrk*^B-gByj3n+rQEV(Z&>T5GjA8mcF8QcSBm9=235=*P;j9w$efXz&zsqscGaCr
zY0yOJpn~DHN)5|Prkl6dMXwi~vK-P8!eIq^#dOnEC!05%oT;EIk{HSaafDCF)Y!O4
zKBD6o1{A22oVV90bR?48%}LsI7+GBM@aTTLDKhL-*|qGFcyrwM=9J|6w1T6N#QmTH
zm;agYei|Of6DrQ?IEV8sN0YFtYX$nIZWx8CnR-{eObj)F`2z94%nVPNKe2sL%tjSt
zBFTr!Vtg;|Udm8L!w6z3Ms<u~yy0!twF<FW$1yf5EF`0nv?{Eqvytmf2!5T#>+X9R
zA{JM1Nx}ICx+*E2O9f_nzL(!^4HI}qB7Iiu_-1x7o6OczG?eM~Q-oVVJjY5{nolhS
zaalq4*vRO}co4Jnd}4HbbesjEVP3Ek3KsWZFE)YK>tsKap-c}J@PdjLbzH$>BXeF0
zrZ+3DS!Cz24S2>roMp$BS%ofbu=C;?l2}r4RYyu1_^?;3tuic>vS<`a62Z$lR;0ua
zN{Q!<Qpqe_+bo;Hx~Ah5VfB)=V&+)3(gVVIRmW?>(a6b|PK7KXzpmpt-e4({oOW%;
zOxjsP%Kd7!xMn)iVvAB58s5_JHr}bXASZ+z8*Ae5o-~TMiZvZstSdNIEw3A{+30Kr
zo;4S2C!I(vIHpIw!VD28_JFEx87N)@vug(1Ru@%N<P|*CR%+L^d&V7u_a{hS(khvL
zLarHJ--aYjg^b}?@?Ix)xp|9$oN3>kbSh5dqG6R}f;2bM&Tt~115UDgAGQL8oT>I!
z{x>L@;k4ho);ymTMBBr)CZ8o<soxQeNzL<XkI-<ap+FxzkmdoqFOX&hf^-zdh~zic
z?wAldXIMvJf;nzID|Sl#yk_sw+DA%Tj8D^ieYWmc-Y3RfDlXd759dMaDF}d;ws{+x
z3zl3aLGnjrdf+jb{3=k8<7AYbUj|$)zQwpJ+`BJqLAm3xZ*Ud1tT(ypz5og+@~sCY
z*rZTd`4$HdB<=TYsH<D(Np3^qt}kt)mwVsU;l3LBheP2Sj&9>PNhc<|y8h%-r@V?(
zUnsnVlVJ?r#hEZ7T(@u`eHX)%-4vV<!HLy@?l7M8SWkPb09l%_wAFz?7?Yu?&~#{K
z3v(V<{T0vG@KQ81Rl{;LG*d%58k(*l6QyVktI>f#4R2nI)?i4$osfVRaENP={~q)+
ztYiFiIEjP2u=^23m{as9%A|h7d-pq>z-@AWz$yHM)A$90_>DQHhhD-~{G?F+JrDB^
z98{RHe*6p<Ri3~x{D=*_Puo#^jSsMiE?QW}hxmwRQ|7gCi%$VsyNHkZq~a4I4N~5h
V`gBL?vmL3=DW%{G%5~t&{{T1k$Rq#&

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/BagCheckoutBO.class b/Streams/target/classes/com/lokesh/streams/bagstream/BagCheckoutBO.class
new file mode 100644
index 0000000000000000000000000000000000000000..126d61563e66fda7b76a10856d6709cadf084714
GIT binary patch
literal 2672
zcmbtVU2hs!5Ixs?nk)pcaZHmq&^9p;>}{HlCc)4a+9ahkPJ@e7<!Oyqun7ihSt3<c
zANyPSRH>DUBehb0Kz~%#nY(K~mc^3Q2lmdLy>sTw+_S?!|Ni+mfO}{~umWEQegy#p
z1>&!@x0>41`W<!u@U`By1cG};->@nIzFfYwiZE6~h$y%OMWE0g9IL&-8-3VShnA^p
z$3yi{>)57R)jGAV-hML}S=D`k)nV5-IoA8ukn%KSqLF3v)P^y%N(>xRa2audwV^dI
z^~RvBS;nCMd~|%Mn*yTFXOarmur6?^-PQViy?5}#i7t?|;Uw>-Wg7jC1l&+?g%5|`
z>gJH37$B|SJ@!RRy+f|r;7AYQn!uH5<u*cfWb}@7GlHw|g>ge*bFQ8rC)JesNLIo7
z_<*{lot)_XBY~aVBB%U<%SlpVh?@*?%N1$gLTPzq7&(EBV#cFql30OJZwp+@)z1Uj
z5x88;%rv#U&74$@{)nS%=S6=^7gEePT`q5jaZeyt%uHKsqdidY2_6cBt%2QRf%V)X
zZi%$gG&+6F8kuytC6`wA8t1C6>8Px_U#bw2pKq9oYZ!gqmePTC*pr$ef%RINY4F~0
z`mL@(@+_X8VonH@qwd`GRL=E<n|7+0mFVJ`e2eaqg+Jv*`gXXD+*vNti2p%I>FCy3
zQ>iz}vm2XMD^Ol=UWA;0GMvk?<}S6wovFCJ7s(-8%awS|78-4J>O7P1dhMrghw{fL
zyf!;_ViYjvNI48=Z<!+_6xp(85N#-GvWe20my<~(5T%#1`$%&zGTZtSLrQi|c)L8Y
zkfoWnLbE(TPnyXPctpDuJf<H_Q)$!0lq(HGxzYfnHA-h`=+m=AySuasS_6f55WmY~
zd-UZ02N0|uF_fhx521ojX~zJc(Fq3l1wMpm%`!mY_86f;W{hYd?H?miNC(D971F^m
zHW}Op2H%naaRN_Z6-i3LOxI~Zr;x#hOjsd?1nMMY%dV0wu8-+uWt?AHTw_35TxAfS
zlg(YRBOjAx_oqr$4PQ9qRocnI3V$H<8y#Me1i3jt+M{wC<V$-01Wz517ql{+psapc
zrrpEqL~BbTZP=$KB?X<5rc~K8rTUDre1$qaxz8#^pHYqe>Y|$Upepb+8cuM9I`5Md
zZ_wSiulXiXytRZP_nLe34IVmJvpq|=dzSYk@*MjUA~U^8xQXl#k=-RkSRzd1g(s1e
zo5&qcBHwxwNx6yKCn67)5MiY;k(ZuCHr+%Xc@k-Q6OkW@twCEoWg=2pLWG6RMCiYj
zo~)6d>5^F^ul~Z-@898ia_bZsmi8$=Om5qD^c4AI(Y6z`#L2&#ykk336USZKv3cf*
X|3t@5ao=5Db*8*mlkspM_4(a@nJ^se

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/Data.class b/Streams/target/classes/com/lokesh/streams/bagstream/Data.class
new file mode 100644
index 0000000000000000000000000000000000000000..7689da62ea1e08ffcbe2009e374b499a0f33bd37
GIT binary patch
literal 1451
zcmbVM?NZZF5Iwgaqzw_Ud?<c^3?c=gDFswaMVb~UPzX+u8AfNAw8S=08YWGd@xMNh
z`lB5geE?s@cW~U>K&?1a)cm+NyL)$Y&e^^B_T%$c0CU(7;el6xPl6vE3_XYXsV<lF
zazWN|heqCE=!lzT(^+Kjh9`Cf1Q@3C*0Ef&j*LoCt~j=#A6Mj@UT|OKY|%V9Hp-56
z;+R%h)dYxtlX7B~3!8>hv<_4)0Exku(Pm;Ig6QJdx)}z-smw2US;wXfWnx!^fb0B7
zh#?lvT#2pqLyh!4^a~h}a053l1gJV@Nlw_d{<cB_=#`9FAtlDbuUY`O`Y02wtC7Kv
zDM8%AZ2@;A+{F;XNLxTD-O(9(v+1?%&E>6~eQkSZP21X6wJbroTv@<9hVi!bF2q;0
zjwMh1#rO9^brJV5Cg6dDafB}jHaeWLs=1QEAe`!@s-eAM=ntpP`LrBRL=0n+EBuga
za2ZvLByK?xm1{69A;JZan&gO;fGERcTMDXPNEVI!kyUk6%}-OxpUwd082o9od|(Ff
zh+bonXk;dUC)A(WXe=6A5Fz6!N2xHZ|ABJ71?Kta{Ef$@@=U@ar_!S)R`-+X<>ZF;
za>s2_Fl!ddx>L1D$HXOR;#Uu2>qSu(3AyrrHB_yUz4&k0ze(LF;7eKu#H2f8mW{3I
zan7)J^u~;YGFDzM?drD4?Q^HkDVlUaM%(k`GfvC`@qFq0Pa<Zms+~7hOg?=<9*^*g
zjS(6f4|Us1J6#?yJSWS8C9-Ljns$P0YDm*o=?skoI%rK&hD<x7-9K3a`_L$nqLqjF
zx=gF&9>5A#$qFFdOn!$>@&K=WUm)yx&uBSAaIY)WS;Ms&da`x&e!?I{hk0~(?;{5L
zFjB{84HIr~ih?o^$`qXH!%S#4G#`3g!-5-+b4&~z(*VH+{lSJH62(r;)2^V4qHE;$
GVErdLuzH#R

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/ShipmentBO.class b/Streams/target/classes/com/lokesh/streams/bagstream/ShipmentBO.class
new file mode 100644
index 0000000000000000000000000000000000000000..7184c5f54c82edee66b574f313536b966c205eab
GIT binary patch
literal 1848
zcmb7E>2A|N5dJoI(zr>}n-)l+rAd02`*JDjq5g^pA}A6+oy1DrI(B3`NC@#xAkkC;
zi3i}J5VKx4HYu%IMOyDpcE4k0cYgo*@e9CXY-JEZG>KRiaU>Y>N9spaHdM1C*P2IK
z%VkJx>89>(Gek?}Mj9!klgMN-hAhKs%j(L8b*wpuvg6vC+I8fn+7VN^eyI1ln(6M=
z80H99H`Jz~@n}ysJGGvxTc$&tRgbjq>V{m^9arHb<5}d8XUM4SwyinNfu=DO#7<A%
zzSSo%C5ZyVY@oXC+JwE^*NwJjXE1?i3eybBftJq~DS5@W&t@@)d2+4xdYaj0*eHca
z1-eo`7xD=e4za)?7DrBsY+iCQg<A~LdNJ_p=_zusC5FY)-sP-!vslIoL&~*;N`|S@
z`6CKLx~_Lj)$QAq(VdapZ&j~UQBk|ynzBuJD}IK80*2D#m#N%fi0xTzqRdrwQ+w0z
zHZ}V_zYn~uR!cP+s;%?2AB?$&I$e(P)dZ0ghM9kHKK0J98lwuYZ}b0_7CM@{bK%7<
zoaH~r48z{J;Pu5YEI5}DPmcOkc>ecCqt_?qFcSA1dX)d(GQZxmjVlaooA%kmkC($`
z>Q>)wX$LyL3Ax~zZt^#cC29o`>QoW>QO5zpJ#V#2Yw8a)Pf{$760OU$I;L-wzPZXN
zSY_=5$;$c(q;C|8qC#T<F&Z;8jv-Be<B+gMk)k+;b!^az0DL+=<3tf`Qj`l2|E&(C
z$TYi;2fhHl;(Owi??`^7NyMW~c)`3!B|zdnmGJYB{(nUMSh#pgU+y~LIS9n_W(`b{
z-)RqNM(i4jPWYk&sXP)$eL^hM=4s@)dQGRfRLRQ~*GuW*WJ2<|myub@)ExPq4@sAN
zLWZY!=7WWOOQXIQLx<0NGd#x&|L`_Z4*hz?5)y>pB57W_z%MTiPdK$cAM2g(s`L{R
pA5Jk@m>OV)n;YOp;ii~NG|zt-;PwD_MzyYlw3dcOUwUa#{sQmTpfLad

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/ShipmentOptionBO.class b/Streams/target/classes/com/lokesh/streams/bagstream/ShipmentOptionBO.class
new file mode 100644
index 0000000000000000000000000000000000000000..defe29e0fe50c9251e80f81b40139f29f81ce26a
GIT binary patch
literal 1875
zcmb7^TTc@~6vzM5J7rsFDWHN{1f?x4%gt*k4`6sgYl1fM#bjGH?PA+)wp(9}-$@fG
zi6(vkKa}yD-ECR61?6RCcJ`eA{N`Nd_n#lX0PJ8d3LpGo1SA9z5|}<!J}GijY1id)
z^;E5y0-;^4t(kiQ{!F$qfe0qTh)S4*Bv7d7ExD<GRJ#qiYZ|K3>dIB6ZZGBIhSq7R
zZL{1lHNCxG7KnG9tyikq&`$*9qkk%Nw07M#-!B*W{J4ZEObbl*ItLBKsH=ynDv&(7
zK!2(Cs!i20PD+?z<6y_oYHAp>0`nJ!$EHE*`#r6Bq8d@8;E&*zK-x?G`7(EjP47rp
zz#_#*>2%aK-KCImA=t{r?8ugLSdk^}vBZ6krycieJR?}5NaoY7>z5)}7Kr52)-5f(
zhphcbU@>!WJw!%A7CG`ZbsJhBl^Jy@3RE&T%$Do&PD)01vK4{Afqp_MoI29l>g!&s
zsv2(<N+2gyuPM!nVrcyBYzEAR*8Q*2aTg!)Z{3vNVr%M~TLOu?Y7VMmP`sNIrkj;7
z>2ybR;-vk~UCWo_?}U!K$746^t~kexnIk0lhU=Y{<l`)($9m7GsfQXzc6M-?L36Hi
zS73?y%SSJRpGN9%TKTxyteN_V<|wF{utsB^zMAwuKyxa04v||sLpYZ|Lo8P~L*kp|
zRiJT>Jb($ZjM6xXI4RE{hIQJ_+5V8RL0_a~ohz&rpUgBV?qOo$lS9tQ+cdLPkWaoi
zir+I3asUZSUb2lGc^24o1WGis?O1^s5=dDBbGFftFNiIo=d-uz{j{SXTi-189pSH}
z=>uPzQGxlf9FK<_dt}WVAuD{|n=BCVq6;K61PM8T5_p2AV?bhFko#jnp5eLUd<i7x
z1z9GLl`B9vPaKgKV?h#Lkkzpu#ql7nGO}~KMj-hsK)6g8gdQ{+xj;WqY&i=%KaqNW
tj=AJ~AGbM8ecVl^?RAXT5A1b<*3)15Sm|Tc%e~>^-WgWZE~)!a`U^ZMbY=hm

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/ShippingMethodBO.class b/Streams/target/classes/com/lokesh/streams/bagstream/ShippingMethodBO.class
new file mode 100644
index 0000000000000000000000000000000000000000..aa59473f65404c6d350f669b0614f3f032c628ad
GIT binary patch
literal 971
zcmb7@&yLbi6vn>`r5&&X3<3%||8!x&jNQ1?%tFbm&{<&Emrm1m1UhLu^IB@+#KeUU
z;6oX|(-JC!E=-flx%Zs&o!>e4^7GgC9{^tBX$>Wm4QM7R&=s1O&W&TwouzM|&n`VT
zRnT9D%P>7vC|iSR6+5UJsF}D2Q{lvo7WO>)=p})jq_O8L5_{(OxoJ;=@aigD`tQ6n
zh%VloD^!!~*bSW6_Y~A<2XzIAWYfeRS_+yQUC`AU7Z{T?ro=1y-e$hWI9z(~uNN~f
z{@~2!S#;z&^QjYuvR@r)X%Hp~_V~XDS*B}^wyO`O3a0O+lLDX981XRKIMl3>gc=OZ
zY1`IdTa5us%L6*rwqGP_lZdsvvrszh+@0hLnGcRRxe~9j#E;jJSsWvObtt({uJ^e+
zLzx!P9Daiu)^A}9Tf4Vte91D}TwBn%@)_`}GPA+8!xJ;lLl+OY6U~P!%{etCr+-It
z_)O$aHq`qh0SOCr6K(9Ghk91!h+0%yRS`?N5#qi)i;TWUJMYG3x8kb|zry%LqeQX1
zWiY(JuB@>i;qfZ@lwwj$&p3+#$ln0Wl^jv%W_x{&q_2<^_HnQV;Ui|OfHXeS_!Fe}
hSCB&-twH401myX~ta6Zjf*kw<L?$AIkF$zTegh;#nn3^n

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponent.class b/Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponent.class
new file mode 100644
index 0000000000000000000000000000000000000000..d727f72fdb20f20860ec7fef06a2c462f81a5949
GIT binary patch
literal 160
zcmX^0Z`VEs1_l!bc6J6PMh3Iw{9OH<{Or`?4E^GgqSVCPV*RAVbO=*FI3u&5ATuvL
zpeVmAGbOdiIX|}`KQA?}gq?wfkwG9Uu`E$PCowNw-#;lUHMxY5fh#z_v?w{%Ei)&T
ekwFfpc0G_zHbw?U24<jJK!A~f6-Y8MumJ$Awl9kS

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.class b/Streams/target/classes/com/lokesh/streams/bagstream/ShippingProviderComponentImpl.class
new file mode 100644
index 0000000000000000000000000000000000000000..ecc000d0b7dcfa371a6cb6c9572e591dbf3fc117
GIT binary patch
literal 3566
zcmbVP*?SXJ6#w0{blPOvhO!p0Y(?6zgiQp30!=85wxpU;6;ZrRZj+&tnPFy9Mcns&
z-*9{N#RvU9t-^zkJox!H`FZZlq@B=^wth_~_ujeZ{C;P-=brri@2$T89KnxKM9`w3
zRmCc_F~qO%S)SCnQA*~fu84xm&~{QYH1|P<mVv>^cC<6Fd<UY4DNt2(qKn}~!K@^8
zb4EDjq~qFxSDfS&FZsh{zN}f6W|YQlb5<(~J8f1h(-4N6tynt4ntUd6IX{veAJ3jY
zcX{mW#7Hi~&@;NgB=6cJo{A!l)e3r4tif7_L{rcqUP_lmVaBYwLpcVuBwWd(La+{L
z9~kuYS6xj{j%tpZieWuADA=f?7n>NmJox$7<ObgwhRt=dH5)yvQ$6I=Eh_FoA497v
z9CF{by6w|dqu^?$ksP;0Q7dp)5b!o^SFl6HPV_TuSOBimO$??r-4!;&@qrNe1{%Y*
z)#)I94EL(ojRA&L+_Lm*3|ku$91fUz{1PhmU@wC*t#fybTMWk<a+nutMj?Xz(nU#z
zO9P`#gV;24Qelh+Ug$v!4yrhW!{j<%C<u$9aTjCLrr}g8!uE{4PsLH(FO4<rv%FB2
zF>K`Ud7;6{D30TVf|QDrc%beSWz6c7E=bud*Q+8o&9H7D6EOFVnZJRO`xH(qIHO_+
zX@-4E`bB1P&XTz#^SjFt?gcAd=5|R83&L9$P!3~Ao~LkD#W2n>tPUNCG2xcYBEvz-
zg(Z>YS@s2na>P4}hZH=lViaS`;T@Kyb4k4ORlDF3r!zyo@kr)Wj7vYX)BAB-D+r16
zsERx$$d|-CZ5GMOwYA*!%*@y7#3UY5@VJU6aIr2J{svkSSF2oivL(Z`MVdQz`YTX0
zcrl7gcuK+3DlW^CvwKP3$f(G8Y$l3lX1S(wiheDP{ct%7IK$B;RW&S`<Rahl?orJU
z=c|<|VNXa5SuxE5*C)BH$$7BY>XtRCcPEz@)rJ*1MJ1zZ6{%F!?C=6IY}!<~hi&04
zXI)Vtoa7P*x~?jx1}7<&rcGCZblKkK9P331O6QfSBJW=wwSFoBhn65$yB}(&%HtPz
zf?K1uO32NLE>g2%u7~~)SIYFxyvqwSRGx$2uh2yY88XXs5gq(+^{u~T7@{?&$+#|~
zqWGtV5^aTy4^Y;ufHAo!nm4K1h+$2hm>n`y4Ud`ZO!mu*m}<q4X}V+}xBQytbhqJ!
zC|<-%3SL(63SK2e3%!bF%u*ke9QBfuB=|HhxTa0_Y^)NV{S&UwfshX{!i}OXoc>YM
zoT*x=#eGm{rA~0-nkB;9m;cg-Y%UwVvjWX&uIqV?T9`OqzvIU7o5$4PMe^30QR)`o
zQZb8X<MQ(^6_l{`wY?#`f+Z4uUkZPq!iE!v)2-lRx$ub!6INV)KEDg{Bnf{h_kN{f
z26`OSYN}bop#D?mjw7fHf6K6IQREs0LBaP7ea*L0li^1U+X*y6jn*^t57{8ovyH~o
zVAFGoX2-qvKrHbGSfWSy9UZ^Yas&l>N?}m%(n^0t8mXR|7zCzi#!x~zP;;Gj%Dsp8
z%%S@x)-l||X5c2aMrgE4js_!0+`_*3#RGD5B!UIFO~eXlCzc)9NZ>mWqy3%KH*NFa
z*ZU9wJb^*O6|i_zdNm-DBf8So-bB}*I5vj|6LZLP&0!>%pI?CMA*(=O?dYa<K2DIU
zLss^p0t1LgWOxJRBCxWLtjyfT#>8*vki$7VGKUK{ptSyk)|Q`1Ym4W<F8U_dlHX*P
z84DTFH*Z9rhr@7{cCJEX%V}v3rC0!YgubOcQL^Jn&#}MI%ny%@p$yVOXrgdYCDKuu
z;em#sKtre0aC;F)Ur9$uNvE%*#wd20esAG95A_<Jr|$$g?mDf#hBxrGH+l!};lp6<
YBYf(OKEoII8sB&f8E)V^{D9v707HN1x&QzG

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/forEach/ForEach$1.class b/Streams/target/classes/com/lokesh/streams/forEach/ForEach$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..c1f33810c9ba83b635681651814ff99b220026b4
GIT binary patch
literal 939
zcma)5+iuf95IviOx-l+IQyT8K5=t)66@s@^6)3b)rErmg^1{=`-6mV?-O64g@mcUt
zBpwjYd=z3faTOyffhF(Eu4m4fIXnLO>)Uq#&%k|@Q1(y>Z~;pUwPW#7@JQ$he=|Oo
zp=DUwQCituhH|Sts$v;c4}O4)2>u8keoC#3DavG&v@w_gDZ}3;O534Lq=<VyE@9O}
zEx;P;4D08_FnA{}Bhm!YnxhoT>9t25E;Fnx>O9a^PGsVvfh!)a2Dpan49(EQJTf0-
zI_2q%J>^Fx*%RTE@6T=X2{k9eP@Yi1jUrbLIU~EtaAQW6Srzf4Oovt(&HF~DSu7KV
zO5YqxhSh=6@^u!EW%5ppBRZ)MOems}NR->>hZQ?jDZ|#_f9mUz8l;75kJKuNaaJHh
zb*Ls<*eoH!mxYM=?e*p-=a;@y2tNbdB}#v2vLuxI$~6(>Vr@GOsLMSaMkZBy@=DsN
zIrPwB*!*`d0UqHoX%!1a7u#sPFL2Xv5FUw5YzJD)q#ubil_~Dhm6kyI)2No|r3t0o
zE%G>7=1w|a!9J5y!fjgJXJ7?)Xbt881agmd%uNNYF8Mh{m&h)Ef!967$|B$W3_uMY
z&8Nd~^c0t4IByg8!D=rEt)8Pj&C#lz?hmY=Vq*dKcRAG@s)8l~m+$~vGy4!NvK6$^
N#Ws09fj7v~^BZs7)HDD9

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/forEach/ForEach.class b/Streams/target/classes/com/lokesh/streams/forEach/ForEach.class
new file mode 100644
index 0000000000000000000000000000000000000000..fc7d97c00a5a7f0062a3ff428fa8f90abd8b93de
GIT binary patch
literal 2513
zcma)7U2_vv7=BKYc0;<QC4~Ue@)@utK==}sU==DzG%aW#Snz9`Zri1s-LSi<6hZtz
z6rIs)Z@uA)3!SmFI67WC{t0jV5sU*qXLkb|f?#H{?>X=H`@HWt=Z|}Legm){-=q*j
zTtPxb2Ra3M&uep9-qft={E3P4desx?JY-mgH!Khz9I7Zt3aogjRJ1&OT6a=VkW$eF
zRX~~3%!YnqN+2^>94fWx7E)M_9tFKBRv_IB+3*ZAf7o%fd6ywIw`91Cy>;+h#6gfz
zA@u26NVS53l>*tSUCW#HtnSX_UC+_Anwy`pougWHCVwoT**z)rA>M`6SfgOAif6D+
zV7Z^+18*!KG!xi37)1AlQw^)?8Mc)lu`Rbz)1AUlWf=yrUcm+x8?mWbijQ7--u3hv
zL9-jIV^!eCu=6J!!}7|0euX5q2#Ad-Y{fPO&#D;2kU*cGPpc}Es!K!DqOUNiAdE-$
zG&4!FojDaduv5ZUt?G4#-7px%s=a_D@&X+b1Zy^hJ=m*YpUR<luGwP0?f`XmWx1nY
zXc&$@W?N$o(-hbi&7`$CkqIiKA@ICR?FE7Tp-F3bEiG+NQ#S0NiUJM^BwXW??$2UT
zvWHc?j90jy)+NlX0~e+w@jW8J9eD)2X37=m>8OfhcugQ_c)Fu`wj<{^3STkg7rIcy
z>k8gbQNpM|`r-UERoJc>%^lM(GAEvzv(n;(ij#Pg1z0|NWz%;QDS3>_Do)8llWccI
zo+O!mMa3Ds&0hIaKqoAeXYs7S=BJN6)ko|}g4R<qEPbp|o6wz8+Js3?x@1>1v!XeM
z+=tABH)F8f+0xTp7wEgD8Jx;Y%Sq*c2V=?kHux_J#0-Lw(41+y?u(x4P?tihQKPUo
za_0QwO-YqUPGBG+X`d42&|1xWy;;%Lh@o_ODA@bZhc{SZn6>PU=(Pp-FQe|Vr&VW1
zwYm?Vg1W%Eha=JEMxfi&Y7>)MRsxsZEuni%Iztu0MqK+IBNIrK?S@m;j~TLwYIwcv
zl2M7@5!?2718VhA-J7u|-JVX&r*H`$DY&fS3O?r4_zC*;8`c~z&3wtvi5A+FR^{~1
z3v|_@yFa5@hDJev<C-;T>Tb4V+p~>&A(C*|+6bq`@Dw`~Rsa9OAmo#6qfbxhc|<eK
zGS7FR7b8UF(-g+>nTiW=dg1hR;4r}~T9)pNn40VAu7WT52DM@JxUv=85Lo|YRo=`2
zM%cu_G2YlfoR=eCUVhJUmnRjZ9ouh1{K!QN@9-<dKoalrs|E^q5ASog3?D!vhsNRx
z5_APDC4Yr79#<BztUR7b`lO@NC!HNWQ4*3YqPz49`o?c#)o5<V5;8ITg#PsA1!Qw~
zu$_*YtX+~t+4v%MpSgnrkBH*K1Gy!<DDVR^)XEJk;iVWBaQIqW+`RucWv>d1?Oeif
zf$!1J#hAeFP!{mkfdma!B^Ge{=Ka59!3n?MVf1jFLJr;7$2a>RR^kXU80AHM8f!3v
zwWy;Xm-+tQApMSr-oj@5j4fE?eJO$3PcR(HCr~BIw+P=PR|yFabWD-v@GYk4OEAWD
z7&uS3XUWfy1~T)3tVW(i*%~D7!BMbUfi3Q${~vTJDBi`U-jtl9pcU9lZNFu#ZaaZ^
xw3V4iE0b{H(Q_OPeq)%!hhYvE$-9bA@Hv9jHLkv(EKRLGQu(`%ukbb2{tHwEjG6!d

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/nestedforloop/Address.class b/Streams/target/classes/com/lokesh/streams/nestedforloop/Address.class
new file mode 100644
index 0000000000000000000000000000000000000000..9466c0d8f13c656a67b9cd51a3f7a2259d862ee9
GIT binary patch
literal 1524
zcma)5YflqV5IwiuK4`ZTY5@i0rPA$ESP@@Xz$l4H6M`lf5<iipy~5(Q+w3kT{wF_Z
zA|=tpAK;HN&g?Ew+hWWn_c1$j=FFM7zkYxJ3E&}~XAna?1w};yNr90Q^P_3lX6wj!
zeRv}4zCd!rYFYl4KwK;D4<U`A6f!EZPzAKQ(==@7gY=FK&v&KS^o*ADeA#&KxVGc8
zjTeoED?Lv@d2_Jq2#6X(46DdvL?F9ILDE0iHJehPuyd82eps!eDmxcc++b&A+wwo9
zFeWh3>-X~1vK!LPpon-HHw6-$ZIkblDyA?^Wti=@Y&8Uywf;2aK2wBPWr!Jum=&1T
zYS%laF)xs>%ym_?S>otB9DSFgxBnHrD3GqqafxA=rlJg;jJ^|UAyCx%0jkslt=31s
z+HWcEvxH8AgwF3+ExCKzJe2NR^Uw~Ycj~6SZ@L!WBctLUThuvy=YP9QWR!N$=B(G<
zSfx&738apsA5H;{QjPB3#a$s~iQX_dbm>P1^7zXzHmG?N$<VA_2pXO;d(Np_m#-`?
zP>lw0g+~YTG*&Ts0C8Grkm(fTfedz<HQI+jLxd$-D|EBzze0OaKZnq#&XCe8XUOTx
zXBhn&L@m=gP7we-CVnLJ4I@L7o5c!Q^)Ma=?$eEsuu6GFaC$%)nN1OEbczR=lTqe1
z+Sx0?nXgjuvjuVlnh)SZs6+%W=w&~O0E|n3Z%BQnpct4d;{%0(!H@AI3f>}bPLvF4
z?oH42P6P<!q1R<~$*4Mkr&M{UVK<T7mmVUM1BtBTSs#%l(!H0+3=x^Vh6szx5>^Ki
z8SN#qFp$W`U?N?;4;!*bL`v5X;odS4deyY@RMkl}?!x*H6yKd=yfD$hEuGrb!R^9a
ic+Sx_QtDu#a4$5BUKlzk^^#xhBENn)3!8z~TYmt!GX!P;

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/nestedforloop/NestedForLoop.class b/Streams/target/classes/com/lokesh/streams/nestedforloop/NestedForLoop.class
new file mode 100644
index 0000000000000000000000000000000000000000..3f5489de9d0f0028d15d234bdffcc3000d27bcf9
GIT binary patch
literal 5430
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
F<Nx6qydwYr

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/nestedforloop/Student.class b/Streams/target/classes/com/lokesh/streams/nestedforloop/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..56b0f4eddba32c6c6d7041940505cc5b53759210
GIT binary patch
literal 1965
zcmb7EYflqV5IvWc7HWC4P!vTezGw@w_!bLA#aBp!1`LUx%+jv7T6W3q*2Ea&FEY_Y
zYNClhz#nBiv%4+2fXbJ>vvX(8oSC^ZKYo7w4&VwNrqG3067e*;kx&?XslV2>hHh<Y
zk2YQ!HBTWiZ(62TQHT|a>%HhfZxX3Ajv%d2sM%Xu!+vGBFErP441LShEW`DT`g7Z9
z*!H%z<~8evMVPpyZy5^N>TZNJ&oQmdvS9Y7F@QmZ<m#hp_1TK8pq53SO=Aed3jJ<?
zbGu%54A&*m0H^7h4XtXrUO9;og`-jMJ594uH=Go5i1lEUKp~;GLT6!8E>5H|hLcQG
z-`+N?y26FRUXsN<st~#?5aR-oR~RcS9c<Wx(+a8Se3;^bIGz>9bK<!CH^)hZ%yj<G
z8u<Q2@h?Rv2c0V)3@DMO)3|^cg&xli`k*je*y~bO=v^~6E!}H6Y~OsO?DN%szJRc0
z<qDzB?^D_32xPgq&eyVJ*BNf0YFfrhb8EwJp6DA5|NYoCy|J!4ru>J>xc9>3n<)L8
zOxS%=8L9pO^k%yaw)!6&50$p$liW1C6@LJdZd=Oj6G&`RwC#)mhi;iFI(1ZWz7?8f
zXcnf^nTl+?gS&H~P}!qA6n#cw^k}4^ko;~S;j|dl9x9Tb{F>c#YQ}w2nw<`#&d69}
zg8QJ0TPwydw-2Q*SsMPyB>@G^muG3GxXv!}{t`9s>Cw$ISNZ}~n%Y6Kl;1&LX*9lr
z%qL#NaGBo`->469^rM%+{e&JyhD#DCQA+?^#WkKH2?6CxLP2QdWK+@ZI_37=5N4?f
zXx*Uw9A@|xQW{V3?=F2t@*{;VpG3k}4*Nj^knS+3!cCMz=L)SQWWvuzQV6_dnFGg|
z$f%Dn5?FO;CqmksV=RPN8g1G{`aX1^0wQDk5~*OZLnOxP36XJDG)g2-A`=G?k*Y}r
zZs9fwL@SbsR^;qHM1r#3A;=Q$h9Hl5b}I8*bA!qhNT_%Kq2LAWHZQ?;&JsI_a*q<%
zCBH(o#-ycYbKj7A`UOX`$67cpjpQ*n*}|#pM4;$v;Y{{?AZJ=A48G%K3scebF8-F@
MT&Lmp{cb$?1-m?+v;Y7A

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/nestedforloop/StudentData.class b/Streams/target/classes/com/lokesh/streams/nestedforloop/StudentData.class
new file mode 100644
index 0000000000000000000000000000000000000000..37cfc27447bedec2a0a05d57e1a9bfa2aa19ad55
GIT binary patch
literal 1310
zcmb7DTT|0O6#ljsl3tJ!kO90E5o{5O7reGs3k8+wpfiEabbMOcSVGgJlcdZjKKbUq
z5q+p5gFnC@<#;wNl7W}H51X8`=X~co-|qSS=jSf~%Xk?_2w@44B%&B%NbT``uA1Cx
zsBd=m^qR*ols7EHD=>sJ*@^_2VayNec!sGK9fyA?8?F~a90>`@B!+Q;VX<bnRMT$i
z?yl;3j?P=IYU!@0*WcTYY1?g8^E!3i@=Dy}46?ShU0U1R(uhI%6kP!4;*gLM^hOz`
zGJ(@o+cb%xVOu#tY>Xi@XjK^(83?ks4kSzsl3c9U9o=<hTw)l0#jQ?@Tj@>S;Es$d
z)I`&^>b%`?;+VuW!8lE*nb$qazNVVz7*->9-jl7!xXutGM3+1EJ|W&9={LCH<IUry
zgiI1yES%iYsr)Vla#v`@Fqe530PkI4E*lW7FR6k>LGU)id|%Qazm2mAf}Y9{Em}>(
zJCW^^jQb1;ZPzf{JpGnCO&JeJhLX|dR#S-bh>llCpH_N>e-w@<4AOSpZ;G1LjE2R%
zj-xZ=&s5Bp2ffN%A;%C|wd;g3QZ_7ov(wtqoh`m&l1C}qHEve8V+gzNjCi{SiMBLw
z4e>~+N}{2A{bx(*O6Hud425&f|LjE0*UbLB#WlO*)bw>jG?EI;%aWK7%+SPz=m9fK
zi<zVEQ?f$HAx!@?&9vvqqtcfiJE99+utPuO8SUa2kWrvL*$cpPyzqTRtPqe$o+U7`
z5=W4#-w^9!<SUsBrx2t4x~l|M`d9T3DL?Vc&@q&1_=q-Td>j+eV@wKjvKmpQmCIdR
z)v6I;MwJ<5R+v99*TpU0OF2v9xDyHF-0S6>1Vw$|WdaTcJyaeCkSO*$VxsdN?FoPI
X<G70iD%AS{$@iJWWLTq^5Z3<!u{lOa

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/streammain/StreamObject.class b/Streams/target/classes/com/lokesh/streams/streammain/StreamObject.class
new file mode 100644
index 0000000000000000000000000000000000000000..36a0d5f5b90b33ccabb788ec868a7510f7fbc830
GIT binary patch
literal 4630
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
Y#$SjgzngbbVt<V^;BWW`{)LwR0hb!&djJ3c

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/streammain/streammain01.class b/Streams/target/classes/com/lokesh/streams/streammain/streammain01.class
new file mode 100644
index 0000000000000000000000000000000000000000..d873e322a5cba9f7469a4ba482401ea9751599f0
GIT binary patch
literal 2740
zcma)8YjYE26n@?$?S^z~(-cZ81p>C%8>AqD5ad=ss%eV`i!I)^$+lg(*^RrKLcQS~
z?{`1wAK;7QjLujnj*g!l|A2qR59ssmChdk6hMCO1@1FOZ=bZDL^PcQqw{QIcU_ZV~
zAcClZn2H883M4OS3tGn1tl7-?^d-IE2{axtEW<l05bf=oP!JbrT~!*fJbhMo5>Sv(
z(F9dMS<uXiK0YJR-aFElTcevz-~qHKNUCT>s^+rd8D{2$<7kU6U21O5aOu0J_hJYj
zh$vgd^ev=XR>4MrHs8@Ij66x84bctQj1C2zDjvj^nma$k{G#jWB_?K9=xbBp$*?o$
z9K-VRo}+7}Y#dt!Hkt%WUpBlsYNlQP#7$s3(h7E{*olW~{_CwtMp<H+7U6qCnGoEt
zX0v@0P3XZc1rMv}MW4U}t4Ra|#0^h(G|zS<o8iPqs`6|T1~8~#w~9T;2&7gKYATFk
zPIJffD@>9#oRSuMRqVqf0x`=MZ>(X5D$hD8cvQs!92AH%iwRj*A7Vs?eMrS&WcjWY
zi+7|~E7X+a=y6F9+oz6zn#M#N#|2cMUwbC4FX&c^jd@bVFiy!vC=~QE<KA8i&@b>z
z#VUA)ZDodS%dM1jhb;8qjEX04mf6nO&S|YMCy=gkeix&F{wGyDg&chabrslB=PQtA
zSTWfSDF}?I7{@ts=jpOX({<`Ap`CN|qEXO1ov}TGyn^#8p2dW~=G6+-VKagm!(>?n
z4y_yaDq^@1>M&Td=P;>YO2tJy&s5g<8n#W7*V=aEHS_GC%eK{}P(@tP^b>ed#Y=dZ
z<Q4(|fuV4aYiz<7zglbs(*pekyOc5QdEK4M1V(OkEop`o+79g{!^3uw9oLdGEPbp}
zn%153+O$bYDrXlob3$_r`Cb*qyg7qe4d(9O1=}|!{mR=Fo;3N|{S*)e?{?_wRwtgc
z)SOxRYg@-qph31YQ%DA;tHVm5Ngj>QoMx}nJQ1)E6r#O8uf=jLx1Kv-j;s^WQO4Aq
z_q4+Ns8+6W(rjv_>7v#xlk8?V?cpg@OQmm$b>#(@lbjG?lcBqru#uy>EJY%3SDb==
z#*i<qK{C?Y(B3_=`N+UY+x95e%A-05XwhwH#MK1e!rKboQSmO`6WHnZsXu%SYk}R7
z$@y{9LYvWKyDpNqQuyufa3)owz`<F~Dw?|6owM!vN;w;1s#?~Nq|Wd>`3|e!|6$<r
z-nQWzQAHlsOf%03pH1Q@S-F;gh7VO-!D3SWvXp%)WuK|2U?GVGj>-|s(w$*bb6wq4
z@D=|f*KoHU4GO*y*miGKPK1Cn?4Z*K=P(fCz~h$zp9Q{UxC*Wf{Wl<f<|cw7pYj;k
z0G&@YP{0gkec2ogN@y$=2-ZN^QnK-PD3j5Ko7j+_j3qbwYeTZbUmKGr{8ef6mw2*E
zt~b$~`weZAH?V2+7qq9kmauJL8Qq-5yO+@~@IAV@VY~hb<#4PswuJo+<sYC9cE*<R
zSOgcY|Mw3K2bOR|+8?9+;4Pd0mT@`)LX8OA!l-<II)a<Hu#6WX1nU{2`fgguY-4`5
z2hhxYGY+B!$B^WoPAjI7g2}Iq3O2EP?YPR1j%(<^*XY7e*ot3~_SxA_2BxWZ3G+lF
z7qlvIJxB`+Hkmqx%P4afp<NuWa2JI`jWpLl%U#iOSF~K7dellGdK+U3di>wOu743p
zCS>yjHNYua$Xd1ZR|!&L*Aa{UNKrIY%C1l;TNuzh&n0{VBF)DI5!s?u#C=u7IC&zd
z&r`T7Izmu!yy`<m@fyJ*cpYzWZRhSyx_=)Z;3I$cF+RcP_=0B%dijzpev8ik0S&ds
A2><{9

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams$1.class b/Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..5b79a5a72dacc7e805fa55471883d3ec58d1b14b
GIT binary patch
literal 908
zcmb7C%Wl&^6g?9=bz+<*4K%#Us}zVEfrVg~ssfcFMM_(wpe*QW;ta{O_BgV~d<;Lp
zh7Fq{u|TZ(D8zMage9m1mOOXn&Y3gk+_~R>eEACCDO?*B7#2(iRje?yPWU_S1zgR%
zqsfWzHN(n|R8sFU7+rU4qlUT#+rb4m3~RsP1Es}G#0)j5^q2>!Se_WzSVhx9%fTAj
z3_U*zy&yUj$=pkHEO?mwihLox7b1*Cd3x(HgQ-PA5<1=C9~brAHx@22Y%F(DEd%du
zs(dXY<-Ll<RQg<#1amK%QfLmP5{GFx5%Ft22`JMZMm`V5JeJwINSb;s6NZPw|4`Xy
zV2a`5UnDX#Mw<Jl2YgXnuwHhOSD1`2)JJlrxK3kIwqIf@AbI8-lRG7R@e2K2Qe}^#
zH1@?ynb~cXD*Gra8P#N8`9YLOH9HV`9!)K5F}VNi+`)Z3paO?nlKoEixFmy~kZAkv
zn86t+CE~q+Cy7XKo4TO_sup#hK|eJet=4JgQDj+W`!m=lnpDuCG1~^+beTpc2jB{>
z(u%qdZ5p$~hlH+BZ1&DzRTuAJnIB*pA1P&&Xxt@DCx;d^bO_gQorpFFT}7qwjJ2K<
x_l<)4Nx@y;?tMe;42_KSJaP4c)x^yu>J~Z9(08y&(ZpTcLziYYk*`vu?<c%j%whll

literal 0
HcmV?d00001

diff --git a/Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams.class b/Streams/target/classes/com/lokesh/streams/streamsapi/DemoStreams.class
new file mode 100644
index 0000000000000000000000000000000000000000..bdfd9dbb65f3f36391f989f6b9adefb27fbb33e7
GIT binary patch
literal 3904
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

literal 0
HcmV?d00001

diff --git a/Thread-in-java/src/RunableInterface/RunnableDemo.java b/Thread-in-java/src/RunableInterface/RunnableDemo.java
new file mode 100644
index 0000000..963dbef
--- /dev/null
+++ b/Thread-in-java/src/RunableInterface/RunnableDemo.java
@@ -0,0 +1,11 @@
+package RunableInterface;
+
+class Hi implements Runnable {
+
+}
+
+public class RunnableDemo {
+    public static void main(String[] args) {
+
+    }
+}
diff --git a/Thread-in-java/src/ThreadClass/ThreadDemo.java b/Thread-in-java/src/ThreadClass/ThreadDemo.java
new file mode 100644
index 0000000..195d4e4
--- /dev/null
+++ b/Thread-in-java/src/ThreadClass/ThreadDemo.java
@@ -0,0 +1,39 @@
+package ThreadClass;
+
+import javax.swing.plaf.TableHeaderUI;
+
+class A extends Thread{
+    public void run() {
+        for (int i = 0; i < 4; i++) {
+            System.out.println("hi");
+            try {
+                Thread.sleep(1000);
+            } catch (Exception e) {}
+        }
+    }
+}
+class B extends Thread{
+    public void run() {
+        for (int i = 0; i < 4; i++ ) {
+
+            System.out.println("hello");
+
+            try {
+                Thread.sleep(1000);
+            } catch (Exception e) {}
+        }
+    }
+}
+public class ThreadDemo {
+    public static void main(String[] args) {
+        A obj1 = new A();
+        B obj2 = new B();
+
+//        obj1.show();
+        obj1.start();
+        try{
+            Thread.sleep(10);
+        } catch (Exception e) {}
+        obj2.start();
+    }
+}
diff --git a/functional-interface/pom.xml b/functional-interface/pom.xml
new file mode 100644
index 0000000..ba24450
--- /dev/null
+++ b/functional-interface/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>functional-interface</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>
\ No newline at end of file
diff --git a/functional-interface/src/main/java/com/lokesh/FI/Main.java b/functional-interface/src/main/java/com/lokesh/FI/Main.java
new file mode 100644
index 0000000..0704fc5
--- /dev/null
+++ b/functional-interface/src/main/java/com/lokesh/FI/Main.java
@@ -0,0 +1,7 @@
+package com.lokesh.FI;
+
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/functional-interface/src/main/java/com/lokesh/FI/demo/DemoWithAnonymous.java b/functional-interface/src/main/java/com/lokesh/FI/demo/DemoWithAnonymous.java
new file mode 100644
index 0000000..7ad2a1a
--- /dev/null
+++ b/functional-interface/src/main/java/com/lokesh/FI/demo/DemoWithAnonymous.java
@@ -0,0 +1,17 @@
+package com.lokesh.FI.demo;
+
+
+interface C{
+    void show();
+}
+public class DemoWithAnonymous {
+    public static void main(String[] args) {
+        C obj = new C() {//this is syntax we are using till Java 7
+            //here we defined an anonymous class
+            public void show() {
+                System.out.println("hi from anonymous class");
+            }
+        };
+        obj.show();
+    }
+}
diff --git a/functional-interface/src/main/java/com/lokesh/FI/demo/demo.java b/functional-interface/src/main/java/com/lokesh/FI/demo/demo.java
new file mode 100644
index 0000000..01c965c
--- /dev/null
+++ b/functional-interface/src/main/java/com/lokesh/FI/demo/demo.java
@@ -0,0 +1,22 @@
+package com.lokesh.FI.demo;
+
+//lets create an interface
+@FunctionalInterface
+interface A {
+    //declare an abstract method
+    void show();
+    // this is a method is already define in the object class. so it will allow this method.
+    // every class in java extends an object class.
+    String toString();
+}
+class B extends Object implements A{
+    public void show() {
+        System.out.println("hiii lokesh");
+    }
+}
+public class demo {
+    public static void main(String[] args) {
+        A obj = new B();
+        obj.show();
+    }
+}
diff --git a/functional-interface/target/classes/com/lokesh/FI/Main.class b/functional-interface/target/classes/com/lokesh/FI/Main.class
new file mode 100644
index 0000000000000000000000000000000000000000..ba1c359773a2bc82b68f0514f7c64a3225b7c6ff
GIT binary patch
literal 544
zcmZuuOHaZ;5dM}|X|001d@FcD5B6f>0prDlXi^^uhKr}AZeVfSHKl0$S$fdKgFnC@
zWt<ihB(jH@oo{Bo`DXX)`{NV9A$Bd~P%%+OEsqrot5`FzZeW8UcPs-LoiL=EdtHXi
zslF2o1y=^*a_sj+c*A>&kdmuCuDU#war_HrqJbPSR9sK{j?(vHG;rGI&IOl2i@1F9
z47KL1JLHetQ9S57ohXz+zm?45VV}CobJ7e}M~_2Kv}HWpj2RDN5*r5c1~zSMVVl7|
z6H4j&lMdBg!@!P>IvOPQzaEC-RK!(pD7<I}>O7Ak;nOqdF(s-K#Zo)hBsU__g8Q^m
zIpLUv8H|UxNYSp<=DbzWK$borJ}FQ+@?=el9P*5OcK;phB}rRka|xKn0^RLN0r^FW
pOe~>5NZfpskP-HZR4M(2%#^^Q6tU8r+#eDXMJy9e??X0)@(&-kaPR;C

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/A.class b/functional-interface/target/classes/com/lokesh/FI/demo/A.class
new file mode 100644
index 0000000000000000000000000000000000000000..87e719aefce1b13110d99a9c06019a829ea96754
GIT binary patch
literal 242
zcmYk1KMw&x6vXFooWF@eqtepYMyJwTB9TZ)^lLpVd%MZq9^Xyj1Ncy4kAmh+GH>$B
z%=2}B0GOg1qaC9|i1L%W5vrr{meBBS<1=lKg#Ku}Jj<&TM%ttJx-&v+<BCjiq74(8
zdrsY?Oc4g_!g`(ZR_A(Wcy6up(ragP!tjrj6jqhCGz;rFJ4nR=+gC0X#$7l+iDV&4
pu9y>gzXq$_nU${tgi2TdRHD!t5fHS7@CbhVxeYXf)<d!dya9~yJFEZz

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/B.class b/functional-interface/target/classes/com/lokesh/FI/demo/B.class
new file mode 100644
index 0000000000000000000000000000000000000000..ea4987bb80f7ea50fd8d603ed126b245c7b6297c
GIT binary patch
literal 521
zcmZvY%SyvQ6o&ulElnER+M9Q+yVix-2repu3I!pkQ0YERhh}P$kt9`oEL|wL@Bw@%
z@k}aJp$wVHIp_bsGjl$_-ah~wVc$RjH63*{if9^WVNJujh7Apy422UBisY0b+vyG&
zau;&U87j62`PD2K@#xkW`IM>I(slfy6A2anBy));VuqIO%E0pF9gjV$e`$?*Ag%Kr
z(PB?NG8h9ni(K9p3Z$#*;naC>OcbGO*fOz=9fp!8glNwx8g@<Wq0P`(hGwWLfaN>k
z#JV0$xtlCkp8Zn}p5lZD^i(+`ebY`ELRvSG2$Mk)aVMZl*O#Ojw0kA;L-KXz#<V%P
zL^$bnhiD^Db0#4TJwqS8jUt2oEIJvT`GYsG=d@g+U5NpcmfBMRR#2vh=D#o>6HL|g
b7i4PLSLA*HM%t%LohpAI`T|lVTL!D&UM6Vn

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/C.class b/functional-interface/target/classes/com/lokesh/FI/demo/C.class
new file mode 100644
index 0000000000000000000000000000000000000000..22b0da7bbefe4639e1d3e286ae9e9dbff8c640e6
GIT binary patch
literal 139
zcmX^0Z`VEs1_l!bPId-%b_Nbc2A1NC{BlMHW)00SMh33n{L-T2RJY8WR7M6dm(<++
z@XV47$GrT!%G~_YV!f=yvP4D(k>vbb{ha*l)Zz?%H&6W(pfY`DMg{?ptbR^nUb?=2
gQdVkm2^#|gBLfrAIv~vgw1R;J#A09tl1vP202X5)6aWAK

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous$1.class b/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..0d2a9f01de931c5b619756858aeab622517c7143
GIT binary patch
literal 724
zcma)4O-~d-5PiKL3_A><3k#xrtO~MtU?d^ofFUufBqXblEWv}P-r1IEoar_*vlxDs
z9yH;=58y`;-Yg&x_Q0X5x~gBjSJmC;7pG?c*3ob=gsBRq@oX3~E}r9sgINc24(0`h
z-fN??ErDWV<v^g+v|S}I-qJ>W>BSwD?8{EXOtobL86C((=kay2l!ZDK@OF$*Ni&jZ
zsu-@c0vr30{h`v(-`?@NDz^Sdny)$wKNw@pNo;%R;@T$l($M}AaND+*1ZrF7QqvEy
zt4H!!vaL@hh-|9O;b)bFw(DTQLme+Y45Q-Um50|@BtfX_-xC|x<&9Q7$eVMp<lzmL
z1(qM#p}><|*^i_-^mjW)D#!#T2NX92mIkCBPQsC6sg1x?<6G;NyPYMRYBPU=JBsa-
zG*dC(#`dUNyTWVh?-87_M9G+UIMJuMpB8X_=Aej5wZ<SJyhE8EgFyb00vE54k;|P=
zFX+o}|3UojACJ)HU=ZZddRG99Vw@41{$IR7vOew)3f1CYlx_*!zRn1hygMY7Ymy?K
WlB$3zCg@9;L=9uyxuh%8v%^a(ho%q!

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous.class b/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnnonymous.class
new file mode 100644
index 0000000000000000000000000000000000000000..f308d85d827a7721445dea83e42a83b8f89573be
GIT binary patch
literal 622
zcma)3O-sW-6r4>z(#F`<R;}M6C{_i7;7t*vA{2ujDi!gxZI^ayvI|M7__I6}75oAI
zDDfo~JlI2XcyDLk&b&$T_5J<{;24`0vZ$I^vS6S(gJrCkST(W6U^kQ!LEYnFC_;wp
zsZ=sLV@TEZS`6vB?h1yYE0wq&`fU;1^0r4z+0`BHwRj+7{7a^zz9f%bx1)W>(~lzT
zJC_ZoD}3!-P`Q&)|6D1pUVJ?aPsrZqQZX#n9^3(c;*Q5v&uK=1RK1gAJr8<hSeY=U
zgt|Q-?WARO^0u0K7<9y?jN?}SuRn}8+Q=bKiKhy@ePm+Y#zw5znM%P>`g^aN_CRzZ
zhWQE7I(>_<ub;7n4E?J3F~H(*R4qadbw)k2KLUGA#xqp232DNnvpv3mSriE6QACND
zSbRlh2KC|xjQbH%?!g<<41YESq!LMvqy-Yjc8g;P=1?Y-gNX{}$<V+8VT0x-bt_@$
GfZPw<?1xDJ

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous$1.class b/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous$1.class
new file mode 100644
index 0000000000000000000000000000000000000000..57b0171d9acfff2e48d9b4e23e5a479264d31f9a
GIT binary patch
literal 720
zcma)4O-~d-5PiKL3_A`W3k!bYf(wiu7)?k#U`)&^3CXG?YnB72-r0s}nCT`nvlxDs
z9yIa55Aa7B-z+E?_P}APx@um%S5@7=e*ZiNunFJA1Qu#o#Jx$}ckuuZ9XxXI*uj#(
z#A|JI{zjneKkErp+IFA>W;)uakHe&|($BIVGgI%_P{uu(>LR{OR`N(^0^W`>Ds9Iy
z%M?Su6WSz*?Xk+DV0$MRsKf^EX!dj-y*1XHC3cv#UT#q?i|iKxw`+%KsJ3;Xv~UBu
zaU@SAn|g1;*k;-seo%R22M(TiXkyvJBx(*;JUm59U@_9ogVZKX`B$nL7Ogp0^{|F@
zfwkN9CvdkA4q|BzgHQb<73Ko-V`|$1tug5vb8y~7YQquz{mvD2H%~d!R<ZtTg59$$
zR|)UM4k_EXz-t@q5}dO{$%G4>8`1oq7I01qP)wzUKTZfQQ01c_kT0afj|*hv@)Xbu
z`s(u^5MM{X@6Z-t5aiK%7XVCQh7p_oSNw`(BiuKX>gDgKToJe<o#Lvdu94I(Ny?Zd
WRS9*>(N{2!2Bvv(Nmr$3hkpR>v!qr4

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous.class b/functional-interface/target/classes/com/lokesh/FI/demo/DemoWithAnonymous.class
new file mode 100644
index 0000000000000000000000000000000000000000..2f37aa20f7b1ffb9b25c54c73573e4ae26fd7856
GIT binary patch
literal 618
zcma)3O-sW-6r4>zQq$O0t@T?Gic|%I;H@G^MJNV6R21>FZI@<ivI|M7__I8T3jP3p
zl=u>b9_*nxytgxNXWk_F`hNceaD*)jc`TV&wqRhXh!w1wSTnKCV7HYLVaw-HBqE0V
zu~afXVaPOgZy2&I-4_gHS1NHi3c4b^=3Sqdc~|$if5StW;6E}Ody+hM+@1~`Uq6V*
zbI#jNUj*7YqjD=_?^J2^9OzNhB=>+z#ZYV9yF>oS9iOX#(}_c=2F-Lk4+rG8Fkwsq
zb$3YGNxNF)ZFTf0?1^)kq^<qievmA*QNRr4ohEMm(8Pv~%|uY2M!--RztmNCD0(qN
zb%L@*A0qPf6Sk3~-;_KCSQ3q@MaZGfsOR=x!CumFk!n6AP1tm{e=lGbB|<YOqe4s~
zz92J$diev!-77Ng{u{CkW1A8(siZ)n63G&~+OGt2m?u<#i3L>2(7+;LgXSi6D`n__
F!Vgk=g^vIL

literal 0
HcmV?d00001

diff --git a/functional-interface/target/classes/com/lokesh/FI/demo/demo.class b/functional-interface/target/classes/com/lokesh/FI/demo/demo.class
new file mode 100644
index 0000000000000000000000000000000000000000..5b07dabe7923840109da61f3ef9ed75f2bcc49ce
GIT binary patch
literal 530
zcmZutO-sW-5Ph3|q)ltTn_9oXTU9U@Zxx{m1u^KMQV>s@G_)I&ETpOaE>A@Te}F$q
zoK1yZvWJ<Sc{A_5-JjpjZvYoKGEju6qh~;aS-~#)I`(wzGZZgHB$6wJ+~8!&kiU^L
zkD+dh$h%*Kju$_2C!kKtmM#ybJQk|{Z|0MQSTgi&SB6#~U%chQ8sAzoFO+E*5@E<i
z#9$7dZJ)n#E8x-Gnk2D^=EGEw$8(}+XTao1IzH`Y(T|ARn8;P^dSjssmX+$c(x^g5
ziJ_BW>RQJ^6^9D$Wx$Gpp|Lgk;P{@KWOI$^am$5#!!Zi<z3OOSN}FPtDvL6sTsU2W
zy{E82v6wcSsL;K-8KAsFRT(wZsiT(fh)kng|AO|kM$SI_K%QYsQ$vp6HmP-Jt((%B
Vn-w(BB&<YUS~Q_tbg0(Q{R0^NX^{W`

literal 0
HcmV?d00001

-- 
2.18.1