3:I[39275,[],""]
5:I[61343,[],""]
6:I[23053,["7699","static/chunks/8e1d74a4-5fcc24cf3a9fd8c2.js","7240","static/chunks/53c13509-baa86b522e6ae78c.js","4740","static/chunks/4740-14bdf05e7ce04a11.js","9617","static/chunks/9617-544346a1cd0024b4.js","3185","static/chunks/app/layout-8c4bc5784f5090d9.js"],"StateProvider"]
7:I[19593,["7699","static/chunks/8e1d74a4-5fcc24cf3a9fd8c2.js","7240","static/chunks/53c13509-baa86b522e6ae78c.js","4740","static/chunks/4740-14bdf05e7ce04a11.js","9617","static/chunks/9617-544346a1cd0024b4.js","3185","static/chunks/app/layout-8c4bc5784f5090d9.js"],""]
8:I[18709,["7699","static/chunks/8e1d74a4-5fcc24cf3a9fd8c2.js","5706","static/chunks/9c4e2130-08078aeb5700c43b.js","5505","static/chunks/385cb88d-fd2f37c33b8aa92c.js","5452","static/chunks/5e22fd23-9bf9fa71e7554411.js","9956","static/chunks/ee560e2c-f551c028fd538293.js","4740","static/chunks/4740-14bdf05e7ce04a11.js","6648","static/chunks/6648-3bc9d66179346fb0.js","9160","static/chunks/app/not-found-5850ce7843ba4d5a.js"],"default"]
9:I[45723,["7699","static/chunks/8e1d74a4-5fcc24cf3a9fd8c2.js","7240","static/chunks/53c13509-baa86b522e6ae78c.js","4740","static/chunks/4740-14bdf05e7ce04a11.js","9617","static/chunks/9617-544346a1cd0024b4.js","3185","static/chunks/app/layout-8c4bc5784f5090d9.js"],"default"]
4:["all","java-stream-tutorial","c"]
0:["79z6y6ppLce0GndJRjYzJ",[[["",{"children":[["all","java-stream-tutorial","c"],{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":[["all","java-stream-tutorial","c"],{"children":["__PAGE__",{},[["$L1","$L2"],null],null]},["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children","$4","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","styles":[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/402d889fee29bde2.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/0ff6cecb1d0e96f8.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/cb4e98a4c2dc4d80.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","3",{"rel":"stylesheet","href":"/_next/static/css/a246b44e33111fd9.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","4",{"rel":"stylesheet","href":"/_next/static/css/9d9d0f6a85930e46.css","precedence":"next","crossOrigin":"$undefined"}]]}],null]},[["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L6",null,{"children":[["$","$L7",null,{}],["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":["$","$L8",null,{}],"notFoundStyles":[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/cb4e98a4c2dc4d80.css","precedence":"next","crossOrigin":"$undefined"}]],"styles":null}],["$","$L9",null,{}]]}]}]}],null],null],[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0cc2495744a38244.css","precedence":"next","crossOrigin":"$undefined"}]],"$La"]]]]
b:I[67379,["7699","static/chunks/8e1d74a4-5fcc24cf3a9fd8c2.js","5706","static/chunks/9c4e2130-08078aeb5700c43b.js","5505","static/chunks/385cb88d-fd2f37c33b8aa92c.js","5452","static/chunks/5e22fd23-9bf9fa71e7554411.js","9956","static/chunks/ee560e2c-f551c028fd538293.js","7240","static/chunks/53c13509-baa86b522e6ae78c.js","6051","static/chunks/795d4814-d7614a20709c27af.js","614","static/chunks/3d47b92a-f2bb54912083012c.js","9212","static/chunks/59650de3-13cfd2620b7240d2.js","522","static/chunks/94730671-a8ad9eca65504500.js","7675","static/chunks/b563f954-501d993050fd0717.js","1994","static/chunks/e34aaff9-cd556a7ee1a90c03.js","6990","static/chunks/13b76428-5a68792917164904.js","5957","static/chunks/30a37ab2-a5fc2d8864b3152b.js","6844","static/chunks/f25cdb8d-30c837856fb6d42d.js","7259","static/chunks/479ba886-8536ff4966e1aaf8.js","4740","static/chunks/4740-14bdf05e7ce04a11.js","6648","static/chunks/6648-3bc9d66179346fb0.js","4349","static/chunks/4349-c8f0646a83cc4179.js","4791","static/chunks/4791-6c93b9aca8a9f315.js","5225","static/chunks/5225-dc21c87d99338f19.js","9293","static/chunks/9293-d1b040d0324d0d5a.js","5919","static/chunks/5919-545104f05818203e.js","1413","static/chunks/1413-986ad1f4cd2d661e.js","2499","static/chunks/2499-61bd3b514e9c4cb8.js","4175","static/chunks/4175-fb05509a4e1790ec.js","5653","static/chunks/app/%5B...all%5D/page-f1bbbeae9a681a62.js"],"default"]
c:T4a1e,<p><span style="font-weight: 400;">In Java, a Stream is a series of data from various sources, including lists, arrays, sets, and other collections. Unlike collections, which must gather all the values before beginning processing, streams can do so asynchronously. The stream can be thought of as a pipeline in which data is processed as it is needed. This article compiles all of the blog posts covering the basics of the Jave Stream API and associated topics.</span></p>
<p><span style="font-weight: 400;">We all have heard the term java. It is a programming language or, in other terms, an object-oriented programming language and software platform. It is used in billions of devices, consoles, games, and many more. Learning Java is helpful in this century; as we discussed, many software use java as a programming language and even for designing games we all love and enjoy playing.</span></p>
<p><span style="font-weight: 400;">One of Java 8's most notable additions was support for streams. This in-depth Java stream tutorial serves as an introduction, and it will cover a wide range of features made possible by streams, emphasizing concrete, real-world applications. Data is never stored in a stream, so it cannot be considered a data structure. And it never changes the original data sources, either.</span></p>
<table style="border-collapse: collapse; width: 100.017%; height: 120px;" border="1px" cellpadding="10">
<tbody>
<tr>
<td style="width: 100%;">
<h3>Java Stream Tutorial - Table of Contents</h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="#why-java-stream"><span style="font-weight: 400;"><span style="color: #236fa1;">Why Javastream?</span></span></a></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#java-stream-operations"><span style="font-weight: 400;">JavaStream Operations</span></a></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#method-types-and-pipelines"><span style="font-weight: 400;">Method types and pipelines</span></a></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#lazy-evaluation"><span style="font-weight: 400;">Lazy evaluation</span></a></span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2><span style="color: #e67e23;"><strong><a id="why-java-stream" style="color: #e67e23;"></a>Why Java Stream?</strong></span></h2>
<p><span style="font-weight: 400;">Java streams enable us with functional-style operations on streams of elements. A stream is just an abstraction of a non-mutable collection of functions applied in some order to the data. A stream is not a collection where you can easily store elements.</span></p>
<p><span style="font-weight: 400;">Functionality is managed via a Java component. It is made feasible by java.util.stream, which allows for functional-style operations on stream items that are analogous to the map-reduce transformations performed on collections. The descriptions will be easier to grasp because of the visuals.</span></p>
<p><span style="font-weight: 400;">Now, let's look at a few easy and simple examples of how to create and use streams before we get into terms and core ideas.</span></p>
<p><strong>An example is displayed here.&nbsp;</strong></p>
<pre class="language-java"><code>private static Employee[] arrayOfEmps = {

    new Employee(1, "Jeff Bezos", 100.0), 

    new Employee(2, "Bill Gates", 200.0), 

    new Employee(3, "Mark Zuckerberg," 300.0)

};

Stream.of(arrayOfEmps);</code></pre>
<p><strong>Note:</strong><span style="font-weight: 400;"> In Java 8, the Collection interface now contains a new stream() function.</span></p>
<p><span style="font-weight: 400;">We may also create a stream for any individual object using stream.of():</span></p>
<p><span style="font-weight: 400;">Or we can use stream.builder():</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>Stream.Builder&lt;Employee&gt; empStreamBuilder = Stream.builder();

empStreamBuilder.accept(arrayOfEmps[0]);

empStreamBuilder.accept(arrayOfEmps[1]);

empStreamBuilder.accept(arrayOfEmps[2]);

Stream&lt;Employee&gt; empStream = empStreamBuilder.build();</code></pre>
<table style="border-collapse: collapse; width: 100.012%; height: 54.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 54.0374px;">
<td style="width: 98.4238%; height: 54.0374px; text-align: center;"><em>Want to acquire industry skills and gain complete knowledge of Java? Enroll in Instructor-Led live <strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/core-java-training" target="_blank">Core Java Training</a></span></strong> to become Job Ready!</em></td>
</tr>
</tbody>
</table>
<h2><span style="color: #e67e23;"><strong><a id="java-stream-operations"></a>Java stream operations</strong></span></h2>
<p><span style="font-weight: 400;">Let's look at some popular applications of the new stream language and specific operations we may execute on it and with its help.</span></p>
<p><strong>forEach</strong></p>
<p><span style="font-weight: 400;">It is one of the most simple and joint operations; it loops over stream elements. The method is so standard that it is introduced directly in Iterable, Map, and many more.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenIncrementSalaryForEachEmployee_thenApplyNewSalary() 

{    

    empList.stream().forEach(e -&gt; e.salaryIncrement(10.0));

     assertThat(empList, contains(

      hasProperty("salary", equalTo(110000.0)),

      hasProperty("salary", equalTo(220000.0)),

      hasProperty("salary", equalTo(330000.0))

    ));

}</code></pre>
<p><span style="font-weight: 400;">If you use the forEach() function, the stream pipeline will be considered consumed and unusable once the procedure has finished.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 30.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 30.0374px;">
<td style="width: 98.4238%; text-align: center; height: 30.0374px;"><em>Related article:</em> <span style="color: #236fa1;"><em><strong><a style="color: #236fa1;" href="https://tekslate.com/exception-handling-in-java" target="_blank">Exception Handling in java</a></strong></em></span></td>
</tr>
</tbody>
</table>
<p><strong>map</strong></p>
<p><span style="font-weight: 400;">A new stream is created by the map() function when a function is applied to each element of the previous stream, also known as the "original stream." The new stream could branch off into a few different directions.</span></p>
<p><span style="font-weight: 400;">The following code snippet shows how to transform a sequence of Integers into an equal sequence of Employees.</span></p>
<pre class="language-java"><code>@Test

public void whenMapIdToEmployees_thenGetEmployeeStream() 

{

    Integer[] empIds = { 1, 2, 3 };

    List&lt;Employee&gt; employees = Stream.of(empIds)

      .map(employeeRepository::findById)

      .collect(Collectors.toList());

    assertEquals(employees.size(), empIds.length);

}</code></pre>
<p><span style="font-weight: 400;">In this section, we convert an array of employee IDs into an integer stream. Because each integer is given to the function employeeRepository::findById(), which returns the object representing the relevant employee, an employee stream is essentially created.</span></p>
<p><strong>collect</strong></p>
<p><span style="font-weight: 400;">We got a glimpse of how the collection works in the example mentioned earlier; it is one of the most common ways to get stuff or works out of the stream when we have done or completed the processing:&nbsp;</span></p>
<pre class="language-java"><code>@Test

public void whenCollectStreamToList_thenGetList() 

{

    List&lt;Employee&gt; employees = empList.stream().collect(Collectors.toList());  

    assertEquals(empList, employees);

}</code></pre>
<p><span style="font-weight: 400;">The collect() method applies mutable fold operations on the data items kept in the Stream instance. These processes include repackaging elements to various data structures and applying further logic, concatenating them, and so on.</span></p>
<p><span style="font-weight: 400;">The implementation of the Collector interface supplies the strategy that should use for this operation. In the preceding illustration, we gathered all of the Stream items into a List instance with the help of the toList collector.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 30.035px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 30.035px;">
<td style="width: 98.4238%; text-align: center; height: 30.035px;">Related article: <span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-interface-in-java" target="_blank"><em><strong>Interface in Java</strong></em></a></span></td>
</tr>
</tbody>
</table>
<p><strong>filter</strong></p>
<p><span style="font-weight: 400;">filter() produces a new stream that consists of a component of the original stream which passes a given test</span></p>
<p><strong>Example:</strong></p>
<p>&nbsp;</p>
<pre class="language-java"><code>@Test

public void whenFilterEmployees_thenGetFilteredStream() 

{

    Integer[] empIds = { 1, 2, 3, 4,5 };

    List&lt;Employee&gt; employees = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 200000)

      .collect(Collectors.toList());

   assertEquals(Arrays.asList(arrayOfEmps[2]), employees);

}</code></pre>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In the above example, null references for invalid employee ids are filtered away before a second filter is used to retain only workers with wages over a specified threshold.</span></p>
<p><strong>findFirst</strong></p>
<p><span style="font-weight: 400;">It returns an optional entry in the stream, and the options can be empty.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenFindFirst_thenGetFirstEmployeeInStream() 

{

    Integer[] empIds = { 1, 2, 3, 4,5 };

    Employee employee = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 100000)

      .findFirst()

      .orElse(null);

    assertEquals(employee.getSalary(), new Double(200000));

}</code></pre>
<p><span style="font-weight: 400;">This section returns the first employee whose annual compensation is higher than 100,000 dollars. If there is no such employee, it will return the value null.</span></p>
<p style="text-align: right;"><strong>Checkout: [<a href="https://tekslate.com/polymorphism-in-java" target="_blank"><span style="color: #236fa1;"><em>Polymorphism in Java</em></span></a>]</strong></p>
<p><strong>toArray</strong></p>
<p><span style="font-weight: 400;">We learned how to collect() works to get out of the stream. If there is a need to get out of the stream, we just need to use Array():</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenStreamToArray_thenGetArray() 

{

    Employee[] employees = empList.stream().toArray(Employee[]::new);

    assertThat(empList.toArray(), equalTo(employees));

}</code></pre>
<p><strong>flatMap</strong></p>
<p><span style="font-weight: 400;">flatMap holds a bit complex data structures like stream &lt;List&lt;String&gt;&gt;</span></p>
<p><strong>Example&nbsp;</strong></p>
<pre class="language-java"><code>@Test

public void whenFlatMapEmployeeNames_thenGetNameStream() 

{

    List&lt;List&lt;String&gt;&gt; namesNested = Arrays.asList( 

      Arrays.asList("Jeff", "Bezos"), 

      Arrays.asList("Bill", "Gates"), 

      Arrays.asList("Mark", "Zuckerberg"));

    List&lt;String&gt; namesFlatStream = namesNested.stream()

      .flatMap(Collection::stream)

      .collect(Collectors.toList());

    assertEquals(namesFlatStream.size(), namesNested.size() * 2);

}</code></pre>
<p><strong>Note: </strong><span style="font-weight: 400;">notice how we were able to change or convert Stream&lt;List&lt;String&gt;&gt; to a more straightforward Stream&lt;String&gt; &ndash; using the flatMap() API.</span></p>
<p><span style="font-weight: 400;">peek</span></p>
<p><span style="font-weight: 400;">ForEach(), a terminal operation, was demonstrated previously in this section. Before applying any terminal action, we might need to run many operations on each stream element.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 38.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 38.0374px;">
<td style="width: 98.4238%; height: 38.0374px; text-align: center;">Also read: <em><strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-inheritance-in-java" target="_blank">Inheritance in Java</a></span></strong></em></td>
</tr>
</tbody>
</table>
<p><strong>Peek ()</strong></p>
<p><span style="font-weight: 400;">In such circumstances, the peek() function could come in handy. To put it more simply, it does the action provided on each stream element and then returns a new stream that may use in subsequent processing. Peek () is an operation that occurs in between:</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenIncrementSalaryUsingPeek_thenApplyNewSalary()
 {

    Employee[] arrayOfEmps = {

        new Employee(1, "Jeff Bezos", 100000.0), 

        new Employee(2, "Bill Gates", 200000.0), 

        new Employee(3, "Mark Zuckerberg," 300000.0)

    };

    List&lt;Employee&gt; empList = Arrays.asList(arrayOfEmps);  

    empList.stream()

      .peek(e -&gt; e.salaryIncrement(10.0))

      .peek(System.out::println)

      .collect(Collectors.toList());

    assertThat(empList, contains(

      hasProperty("salary", equalTo(110000.0)),

      hasProperty("salary", equalTo(220000.0)),

      hasProperty("salary", equalTo(330000.0))

    ));

}</code></pre>
<h2><span style="color: #e67e23;"><strong><a id="method-types-and-pipelines"></a>Method types and pipelines</strong></span></h2>
<p><span style="font-weight: 400;">filter() and other similar intermediate procedures create a new stream that may use for further processing. When a stream is consumed by a terminal operation like forEach(), it can no longer use it.</span></p>
<p><span style="font-weight: 400;">In a stream pipeline, the first component is the stream source, then there may be one or more actions in between, and finally, there will be an end operation.</span></p>
<p><span style="font-weight: 400;">Here's a sample stream pipeline where emptiest is the source, filter() is the intermediate operation, and count over here is the terminal operation:</span></p>
<pre class="language-java"><code>@Test

public void whenStreamCount_thenGetElementCount() 
{

    Long empCount = empList.stream()

      .filter(e -&gt; e.getSalary() &gt; 200000)

      .count();

    assertEquals(empCount, new Long(1));

}</code></pre>
<p><span style="font-weight: 400;">Some of the processes can be categorized as "short-circuiting." Employing "short-circuiting" methods makes it possible to perform calculations on infinite streams in a finite amount of time.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenLimitInfiniteStream_thenGetFiniteElements() {

    Stream&lt;Integer&gt; infiniteStream = .Stream.iterate(2, i -&gt; i * 2).;

    List&lt;Integer&gt; collect = infiniteStream

      .skip(3)

      .limit(5)

      .collect(Collectors.toList());

    assertEquals(collect, Arrays.asList(16, 32, 64, 128, 256));

}</code></pre>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In the above example, we used short-circuiting operations skip() to skip the first three elements and limit() to limit to 5 elements from the infinite stream generated using iterate().</span></p>
<h2><span style="color: #e67e23;"><strong><a id="lazy-evaluation"></a>Lazy evaluation</strong></span></h2>
<p><span style="font-weight: 400;">Lazy evaluation is one of the most critical parts of streams. As such, it is also one of the essential features of streams since it makes considerable improvements possible. As a result, lazy evaluation is one of the most important qualities of streams.</span></p>
<p><span style="font-weight: 400;">When the terminal action is started, the computation on the source data is carried out, and the source items are only consumed when it is essential to accomplish the task at hand. All activities that occur over the course of processing are referred to as being lazy, which means that they are placed on hold until it is essential to generate the result. It holds true for all the actions that occur during the processing.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenFindFirst_thenGetFirstEmployeeInStream() 
{

    Integer[] empIds = { 1, 2, 3, 4,5 };   

    Employee employee = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 100000)

      .findFirst()

      .orElse(null);    

    assertEquals(employee.getSalary(), new Double(200000));

}</code></pre>
<table style="border-collapse: collapse; width: 100.012%; height: 23.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 23.0374px;">
<td style="width: 98.4238%; text-align: center; height: 23.0374px;">Related Article: <em><strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-annotations-in-java" target="_blank">Java Annotations</a></span></strong></em></td>
</tr>
</tbody>
</table>
<h3><span style="color: #e67e23;"><strong>Conclusion:</strong></span></h3>
<p><span style="font-weight: 400;">We got the basics of the java stream, and the details mentioned earlier will help you in developing knowledge for the java stream. We already discussed that Java is the essential programming language, and it is used in software and has a bright future. Learning the language in depth will surely help excellent or high-knowledge programmers.</span></p>
<p><span style="font-weight: 400;">It may seem complex or challenging to first-time users, but it will be easy with time and proper practice, as we know practice makes things easier. Making notes might help better learning instead of just reading it from the web page and trying to understand it. The examples mentioned are for better understanding any problem in understanding the theory portion; the examples might help in understanding the function of the element.&nbsp;</span></p>e:T4a1e,<p><span style="font-weight: 400;">In Java, a Stream is a series of data from various sources, including lists, arrays, sets, and other collections. Unlike collections, which must gather all the values before beginning processing, streams can do so asynchronously. The stream can be thought of as a pipeline in which data is processed as it is needed. This article compiles all of the blog posts covering the basics of the Jave Stream API and associated topics.</span></p>
<p><span style="font-weight: 400;">We all have heard the term java. It is a programming language or, in other terms, an object-oriented programming language and software platform. It is used in billions of devices, consoles, games, and many more. Learning Java is helpful in this century; as we discussed, many software use java as a programming language and even for designing games we all love and enjoy playing.</span></p>
<p><span style="font-weight: 400;">One of Java 8's most notable additions was support for streams. This in-depth Java stream tutorial serves as an introduction, and it will cover a wide range of features made possible by streams, emphasizing concrete, real-world applications. Data is never stored in a stream, so it cannot be considered a data structure. And it never changes the original data sources, either.</span></p>
<table style="border-collapse: collapse; width: 100.017%; height: 120px;" border="1px" cellpadding="10">
<tbody>
<tr>
<td style="width: 100%;">
<h3>Java Stream Tutorial - Table of Contents</h3>
<ul>
<li style="font-weight: 400;" aria-level="1"><a href="#why-java-stream"><span style="font-weight: 400;"><span style="color: #236fa1;">Why Javastream?</span></span></a></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#java-stream-operations"><span style="font-weight: 400;">JavaStream Operations</span></a></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#method-types-and-pipelines"><span style="font-weight: 400;">Method types and pipelines</span></a></span></li>
<li style="font-weight: 400;" aria-level="1"><span style="color: #236fa1;"><a style="color: #236fa1;" href="#lazy-evaluation"><span style="font-weight: 400;">Lazy evaluation</span></a></span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2><span style="color: #e67e23;"><strong><a id="why-java-stream" style="color: #e67e23;"></a>Why Java Stream?</strong></span></h2>
<p><span style="font-weight: 400;">Java streams enable us with functional-style operations on streams of elements. A stream is just an abstraction of a non-mutable collection of functions applied in some order to the data. A stream is not a collection where you can easily store elements.</span></p>
<p><span style="font-weight: 400;">Functionality is managed via a Java component. It is made feasible by java.util.stream, which allows for functional-style operations on stream items that are analogous to the map-reduce transformations performed on collections. The descriptions will be easier to grasp because of the visuals.</span></p>
<p><span style="font-weight: 400;">Now, let's look at a few easy and simple examples of how to create and use streams before we get into terms and core ideas.</span></p>
<p><strong>An example is displayed here.&nbsp;</strong></p>
<pre class="language-java"><code>private static Employee[] arrayOfEmps = {

    new Employee(1, "Jeff Bezos", 100.0), 

    new Employee(2, "Bill Gates", 200.0), 

    new Employee(3, "Mark Zuckerberg," 300.0)

};

Stream.of(arrayOfEmps);</code></pre>
<p><strong>Note:</strong><span style="font-weight: 400;"> In Java 8, the Collection interface now contains a new stream() function.</span></p>
<p><span style="font-weight: 400;">We may also create a stream for any individual object using stream.of():</span></p>
<p><span style="font-weight: 400;">Or we can use stream.builder():</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>Stream.Builder&lt;Employee&gt; empStreamBuilder = Stream.builder();

empStreamBuilder.accept(arrayOfEmps[0]);

empStreamBuilder.accept(arrayOfEmps[1]);

empStreamBuilder.accept(arrayOfEmps[2]);

Stream&lt;Employee&gt; empStream = empStreamBuilder.build();</code></pre>
<table style="border-collapse: collapse; width: 100.012%; height: 54.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 54.0374px;">
<td style="width: 98.4238%; height: 54.0374px; text-align: center;"><em>Want to acquire industry skills and gain complete knowledge of Java? Enroll in Instructor-Led live <strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/core-java-training" target="_blank">Core Java Training</a></span></strong> to become Job Ready!</em></td>
</tr>
</tbody>
</table>
<h2><span style="color: #e67e23;"><strong><a id="java-stream-operations"></a>Java stream operations</strong></span></h2>
<p><span style="font-weight: 400;">Let's look at some popular applications of the new stream language and specific operations we may execute on it and with its help.</span></p>
<p><strong>forEach</strong></p>
<p><span style="font-weight: 400;">It is one of the most simple and joint operations; it loops over stream elements. The method is so standard that it is introduced directly in Iterable, Map, and many more.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenIncrementSalaryForEachEmployee_thenApplyNewSalary() 

{    

    empList.stream().forEach(e -&gt; e.salaryIncrement(10.0));

     assertThat(empList, contains(

      hasProperty("salary", equalTo(110000.0)),

      hasProperty("salary", equalTo(220000.0)),

      hasProperty("salary", equalTo(330000.0))

    ));

}</code></pre>
<p><span style="font-weight: 400;">If you use the forEach() function, the stream pipeline will be considered consumed and unusable once the procedure has finished.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 30.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 30.0374px;">
<td style="width: 98.4238%; text-align: center; height: 30.0374px;"><em>Related article:</em> <span style="color: #236fa1;"><em><strong><a style="color: #236fa1;" href="https://tekslate.com/exception-handling-in-java" target="_blank">Exception Handling in java</a></strong></em></span></td>
</tr>
</tbody>
</table>
<p><strong>map</strong></p>
<p><span style="font-weight: 400;">A new stream is created by the map() function when a function is applied to each element of the previous stream, also known as the "original stream." The new stream could branch off into a few different directions.</span></p>
<p><span style="font-weight: 400;">The following code snippet shows how to transform a sequence of Integers into an equal sequence of Employees.</span></p>
<pre class="language-java"><code>@Test

public void whenMapIdToEmployees_thenGetEmployeeStream() 

{

    Integer[] empIds = { 1, 2, 3 };

    List&lt;Employee&gt; employees = Stream.of(empIds)

      .map(employeeRepository::findById)

      .collect(Collectors.toList());

    assertEquals(employees.size(), empIds.length);

}</code></pre>
<p><span style="font-weight: 400;">In this section, we convert an array of employee IDs into an integer stream. Because each integer is given to the function employeeRepository::findById(), which returns the object representing the relevant employee, an employee stream is essentially created.</span></p>
<p><strong>collect</strong></p>
<p><span style="font-weight: 400;">We got a glimpse of how the collection works in the example mentioned earlier; it is one of the most common ways to get stuff or works out of the stream when we have done or completed the processing:&nbsp;</span></p>
<pre class="language-java"><code>@Test

public void whenCollectStreamToList_thenGetList() 

{

    List&lt;Employee&gt; employees = empList.stream().collect(Collectors.toList());  

    assertEquals(empList, employees);

}</code></pre>
<p><span style="font-weight: 400;">The collect() method applies mutable fold operations on the data items kept in the Stream instance. These processes include repackaging elements to various data structures and applying further logic, concatenating them, and so on.</span></p>
<p><span style="font-weight: 400;">The implementation of the Collector interface supplies the strategy that should use for this operation. In the preceding illustration, we gathered all of the Stream items into a List instance with the help of the toList collector.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 30.035px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 30.035px;">
<td style="width: 98.4238%; text-align: center; height: 30.035px;">Related article: <span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-interface-in-java" target="_blank"><em><strong>Interface in Java</strong></em></a></span></td>
</tr>
</tbody>
</table>
<p><strong>filter</strong></p>
<p><span style="font-weight: 400;">filter() produces a new stream that consists of a component of the original stream which passes a given test</span></p>
<p><strong>Example:</strong></p>
<p>&nbsp;</p>
<pre class="language-java"><code>@Test

public void whenFilterEmployees_thenGetFilteredStream() 

{

    Integer[] empIds = { 1, 2, 3, 4,5 };

    List&lt;Employee&gt; employees = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 200000)

      .collect(Collectors.toList());

   assertEquals(Arrays.asList(arrayOfEmps[2]), employees);

}</code></pre>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In the above example, null references for invalid employee ids are filtered away before a second filter is used to retain only workers with wages over a specified threshold.</span></p>
<p><strong>findFirst</strong></p>
<p><span style="font-weight: 400;">It returns an optional entry in the stream, and the options can be empty.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenFindFirst_thenGetFirstEmployeeInStream() 

{

    Integer[] empIds = { 1, 2, 3, 4,5 };

    Employee employee = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 100000)

      .findFirst()

      .orElse(null);

    assertEquals(employee.getSalary(), new Double(200000));

}</code></pre>
<p><span style="font-weight: 400;">This section returns the first employee whose annual compensation is higher than 100,000 dollars. If there is no such employee, it will return the value null.</span></p>
<p style="text-align: right;"><strong>Checkout: [<a href="https://tekslate.com/polymorphism-in-java" target="_blank"><span style="color: #236fa1;"><em>Polymorphism in Java</em></span></a>]</strong></p>
<p><strong>toArray</strong></p>
<p><span style="font-weight: 400;">We learned how to collect() works to get out of the stream. If there is a need to get out of the stream, we just need to use Array():</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenStreamToArray_thenGetArray() 

{

    Employee[] employees = empList.stream().toArray(Employee[]::new);

    assertThat(empList.toArray(), equalTo(employees));

}</code></pre>
<p><strong>flatMap</strong></p>
<p><span style="font-weight: 400;">flatMap holds a bit complex data structures like stream &lt;List&lt;String&gt;&gt;</span></p>
<p><strong>Example&nbsp;</strong></p>
<pre class="language-java"><code>@Test

public void whenFlatMapEmployeeNames_thenGetNameStream() 

{

    List&lt;List&lt;String&gt;&gt; namesNested = Arrays.asList( 

      Arrays.asList("Jeff", "Bezos"), 

      Arrays.asList("Bill", "Gates"), 

      Arrays.asList("Mark", "Zuckerberg"));

    List&lt;String&gt; namesFlatStream = namesNested.stream()

      .flatMap(Collection::stream)

      .collect(Collectors.toList());

    assertEquals(namesFlatStream.size(), namesNested.size() * 2);

}</code></pre>
<p><strong>Note: </strong><span style="font-weight: 400;">notice how we were able to change or convert Stream&lt;List&lt;String&gt;&gt; to a more straightforward Stream&lt;String&gt; &ndash; using the flatMap() API.</span></p>
<p><span style="font-weight: 400;">peek</span></p>
<p><span style="font-weight: 400;">ForEach(), a terminal operation, was demonstrated previously in this section. Before applying any terminal action, we might need to run many operations on each stream element.</span></p>
<table style="border-collapse: collapse; width: 100.012%; height: 38.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 38.0374px;">
<td style="width: 98.4238%; height: 38.0374px; text-align: center;">Also read: <em><strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-inheritance-in-java" target="_blank">Inheritance in Java</a></span></strong></em></td>
</tr>
</tbody>
</table>
<p><strong>Peek ()</strong></p>
<p><span style="font-weight: 400;">In such circumstances, the peek() function could come in handy. To put it more simply, it does the action provided on each stream element and then returns a new stream that may use in subsequent processing. Peek () is an operation that occurs in between:</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenIncrementSalaryUsingPeek_thenApplyNewSalary()
 {

    Employee[] arrayOfEmps = {

        new Employee(1, "Jeff Bezos", 100000.0), 

        new Employee(2, "Bill Gates", 200000.0), 

        new Employee(3, "Mark Zuckerberg," 300000.0)

    };

    List&lt;Employee&gt; empList = Arrays.asList(arrayOfEmps);  

    empList.stream()

      .peek(e -&gt; e.salaryIncrement(10.0))

      .peek(System.out::println)

      .collect(Collectors.toList());

    assertThat(empList, contains(

      hasProperty("salary", equalTo(110000.0)),

      hasProperty("salary", equalTo(220000.0)),

      hasProperty("salary", equalTo(330000.0))

    ));

}</code></pre>
<h2><span style="color: #e67e23;"><strong><a id="method-types-and-pipelines"></a>Method types and pipelines</strong></span></h2>
<p><span style="font-weight: 400;">filter() and other similar intermediate procedures create a new stream that may use for further processing. When a stream is consumed by a terminal operation like forEach(), it can no longer use it.</span></p>
<p><span style="font-weight: 400;">In a stream pipeline, the first component is the stream source, then there may be one or more actions in between, and finally, there will be an end operation.</span></p>
<p><span style="font-weight: 400;">Here's a sample stream pipeline where emptiest is the source, filter() is the intermediate operation, and count over here is the terminal operation:</span></p>
<pre class="language-java"><code>@Test

public void whenStreamCount_thenGetElementCount() 
{

    Long empCount = empList.stream()

      .filter(e -&gt; e.getSalary() &gt; 200000)

      .count();

    assertEquals(empCount, new Long(1));

}</code></pre>
<p><span style="font-weight: 400;">Some of the processes can be categorized as "short-circuiting." Employing "short-circuiting" methods makes it possible to perform calculations on infinite streams in a finite amount of time.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenLimitInfiniteStream_thenGetFiniteElements() {

    Stream&lt;Integer&gt; infiniteStream = .Stream.iterate(2, i -&gt; i * 2).;

    List&lt;Integer&gt; collect = infiniteStream

      .skip(3)

      .limit(5)

      .collect(Collectors.toList());

    assertEquals(collect, Arrays.asList(16, 32, 64, 128, 256));

}</code></pre>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">In the above example, we used short-circuiting operations skip() to skip the first three elements and limit() to limit to 5 elements from the infinite stream generated using iterate().</span></p>
<h2><span style="color: #e67e23;"><strong><a id="lazy-evaluation"></a>Lazy evaluation</strong></span></h2>
<p><span style="font-weight: 400;">Lazy evaluation is one of the most critical parts of streams. As such, it is also one of the essential features of streams since it makes considerable improvements possible. As a result, lazy evaluation is one of the most important qualities of streams.</span></p>
<p><span style="font-weight: 400;">When the terminal action is started, the computation on the source data is carried out, and the source items are only consumed when it is essential to accomplish the task at hand. All activities that occur over the course of processing are referred to as being lazy, which means that they are placed on hold until it is essential to generate the result. It holds true for all the actions that occur during the processing.</span></p>
<p><strong>Example:</strong></p>
<pre class="language-java"><code>@Test

public void whenFindFirst_thenGetFirstEmployeeInStream() 
{

    Integer[] empIds = { 1, 2, 3, 4,5 };   

    Employee employee = Stream.of(empIds)

      .map(employeeRepository::findById)

      .filter(e -&gt; e != null)

      .filter(e -&gt; e.getSalary() &gt; 100000)

      .findFirst()

      .orElse(null);    

    assertEquals(employee.getSalary(), new Double(200000));

}</code></pre>
<table style="border-collapse: collapse; width: 100.012%; height: 23.0374px; background-color: #ecf0f1;" border="1px" cellpadding="10">
<tbody>
<tr style="height: 23.0374px;">
<td style="width: 98.4238%; text-align: center; height: 23.0374px;">Related Article: <em><strong><span style="color: #236fa1;"><a style="color: #236fa1;" href="https://tekslate.com/java-annotations-in-java" target="_blank">Java Annotations</a></span></strong></em></td>
</tr>
</tbody>
</table>
<h3><span style="color: #e67e23;"><strong>Conclusion:</strong></span></h3>
<p><span style="font-weight: 400;">We got the basics of the java stream, and the details mentioned earlier will help you in developing knowledge for the java stream. We already discussed that Java is the essential programming language, and it is used in software and has a bright future. Learning the language in depth will surely help excellent or high-knowledge programmers.</span></p>
<p><span style="font-weight: 400;">It may seem complex or challenging to first-time users, but it will be easy with time and proper practice, as we know practice makes things easier. Making notes might help better learning instead of just reading it from the web page and trying to understand it. The examples mentioned are for better understanding any problem in understanding the theory portion; the examples might help in understanding the function of the element.&nbsp;</span></p>f:{"id":1,"author_designation":"Content Writer","author_name":"TekSlate","author_bio":"<p>TekSlate is the best online training provider in delivering world-class IT skills to individuals and corporates from all parts of the globe. We are proven experts in accumulating every need of an IT skills upgrade aspirant and have delivered excellent services. We aim to bring you all the essentials to learn and master new technologies in the market with our articles, blogs, and videos. Build your career success with us, enhancing most in-demand skills in the market.</p>","author_img":"https://tekslateassets.s3.amazonaws.com/images/logo.svg","author_url":"tekslate","article_count":"0","field_of_intrest":"","status":1}
11:{"id":41,"views":3251,"rating":4.4,"title":"JSF Tutorial","url_title":"jsf-tutorials"}
12:{"id":93,"views":1088,"rating":4.3,"title":"Advanced Java Tutorial","url_title":"advanced-java-tutorials"}
13:{"id":103,"views":443,"rating":4,"title":"Core Java Tutorial","url_title":"core-java-tutorials"}
14:{"id":150,"views":0,"rating":4,"title":"JAVA Tutorials","url_title":"java-tutorials"}
15:{"id":174,"views":653,"rating":4.4,"title":"Data Structures Interview Questions","url_title":"data-structures-interview-questions-answers"}
16:{"id":181,"views":615,"rating":4,"title":"JSF Interview Questions & Answers","url_title":"jsf-interview-questions-answers"}
17:{"id":192,"views":0,"rating":4,"title":"Advanced Java Interview Questions & Answers","url_title":"advanced-java-interview-questions-answers"}
18:{"id":277,"views":5897,"rating":4.7,"title":"Advanced Java Interview Questions","url_title":"advanced-java-interview-questions"}
19:{"id":318,"views":542,"rating":4,"title":"Core Java Interview Questions","url_title":"core-java-interview-questions"}
1a:{"id":477,"views":946,"rating":4,"title":"JSF Interview Questions And Answers","url_title":"jsf-interview-questions-and-answers"}
1b:{"id":492,"views":798,"rating":4,"title":"Data Structures Interview Questions","url_title":"interview-questions-on-data-structures"}
1c:{"id":1181,"views":549,"rating":4,"title":"History of MVC Architecture","url_title":"history-mvc-architecture"}
1d:{"id":1248,"views":1324,"rating":4.1,"title":"Linear Queues in Data Structures","url_title":"linear-queues-in-data-structures"}
1e:{"id":1249,"views":948,"rating":4,"title":"Circular Queue in Data Structures","url_title":"circular-queue-in-data-structures"}
1f:{"id":1250,"views":710,"rating":4.2,"title":"Postfix expression in Data Structures","url_title":"postfix-expression-in-data-structures"}
20:{"id":1251,"views":607,"rating":4,"title":"Linear search in Data Structures","url_title":"linear-search-in-data-structures"}
21:{"id":1254,"views":1079,"rating":4,"title":"Selection sort in Data Structures","url_title":"selection-sort-in-data-structures"}
22:{"id":1255,"views":963,"rating":4,"title":"Insertion sort in Data Structures","url_title":"insertion-sort-in-data-structures"}
23:{"id":1256,"views":488,"rating":4,"title":"Quick sort in Data Structures","url_title":"quick-sort-in-data-structures"}
24:{"id":1257,"views":441,"rating":4,"title":"Heap Sort in Data Structures","url_title":"heap-sort-in-data-structures"}
25:{"id":1258,"views":640,"rating":4,"title":"Linked List in Data Structures","url_title":"linked-list-in-data-structures"}
26:{"id":1259,"views":787,"rating":4,"title":"Circular linked list in Data Structures","url_title":"circular-linked-list-in-data-structures"}
27:{"id":1260,"views":927,"rating":4,"title":"Doubly Linked List in Data Structures","url_title":"doubly-linked-list-in-data-structures"}
28:{"id":1261,"views":0,"rating":4,"title":"Stack using Linked List in Data Structures","url_title":"stack-using-linked-list-in-data-structures"}
29:{"id":1262,"views":1064,"rating":4,"title":"Queues using Linked list in Data Structures","url_title":"queues-using-linked-list-data-structures"}
2a:{"id":1263,"views":0,"rating":4,"title":"TREES in Data Structures","url_title":"trees-in-data-structures"}
2b:{"id":1264,"views":1077,"rating":4,"title":"Binary Trees in Data Structures","url_title":"binary-trees-in-data-structures"}
2c:{"id":1265,"views":287,"rating":4,"title":"Binary search tree in Data Structures","url_title":"binary-search-tree-in-data-structures"}
2d:{"id":1266,"views":1074,"rating":4,"title":"AVL Trees in Data Structures","url_title":"avl-trees-in-data-structures"}
2e:{"id":1267,"views":452,"rating":4,"title":"B Trees in Data Structures","url_title":"b-trees-in-data-structures"}
2f:{"id":1268,"views":916,"rating":4,"title":"Graphs in Data Structures","url_title":"graphs-in-data-structures"}
30:{"id":1723,"views":979,"rating":4,"title":"Introduction to JSF","url_title":"introduction-jsf"}
31:{"id":1724,"views":122,"rating":4,"title":"MVC Rules and Regulation in JSF","url_title":"mvc-rules-regulation-jsf"}
32:{"id":1725,"views":544,"rating":4,"title":"Enterprise Application in JSF","url_title":"enterprise-application-jsf"}
33:{"id":1726,"views":276,"rating":4,"title":"FrameWorks in JSF","url_title":"frameworks-jsf"}
34:{"id":1727,"views":638,"rating":4,"title":"JSF Elements","url_title":"jsf-elements"}
35:{"id":1728,"views":282,"rating":4,"title":"Creation and working with First Servlet in JSF","url_title":"creation-working-first-servlet-jsf"}
36:{"id":1729,"views":387,"rating":4,"title":"STEPS TO DESIGN FIRST APPLICATION in JSF","url_title":"steps-design-first-application-jsf"}
37:{"id":1730,"views":991,"rating":4,"title":"Developing Registration Application in JSF","url_title":"developing-registration-application-jsf"}
38:{"id":1731,"views":722,"rating":4,"title":"STEPS TO DESIGN JSF 1.2 APPLICATION IN ECLIPSE IDE","url_title":"steps-design-jsf-1-2-application-eclipse-ide"}
39:{"id":1732,"views":539,"rating":4,"title":"DIFFERENCE BET N JSF1.X &JSF 2.X","url_title":"difference-bet-n-jsf1-x-jsf-2-x"}
3a:{"id":1733,"views":430,"rating":4,"title":"Steps to use Hyperlinks in JSF pages","url_title":"steps-use-hyperlinks-jsf-pages"}
3b:{"id":1734,"views":435,"rating":4,"title":"Introduction to I18N Applications in JSF","url_title":"introduction-i18n-applications-jsf"}
3c:{"id":1735,"views":782,"rating":4.2,"title":"Developing I18N Applications in JSF","url_title":"developing-i18n-applications-jsf"}
3d:{"id":1736,"views":526,"rating":4,"title":"steps to provide I18N Support in JSF Application","url_title":"steps-provide-i18n-support-jsf-application"}
3e:{"id":1737,"views":187,"rating":4,"title":"VALIDATIONS in JSF","url_title":"validations-jsf"}
3f:{"id":1739,"views":570,"rating":4,"title":"JSF2 Validations Application","url_title":"jsf2-validations-application"}
40:{"id":1740,"views":1021,"rating":4,"title":"Developing JSF2 Validations Application","url_title":"developing-jsf2-validations-application"}
41:{"id":1741,"views":327,"rating":4,"title":"CONVERTERS IN JSF","url_title":"converters-jsf"}
42:{"id":1742,"views":450,"rating":4,"title":"Basic GUI Components in JSF","url_title":"basic-gui-components-jsf"}
43:{"id":1743,"views":0,"rating":4,"title":"Event Handler Event handling in JSF","url_title":"event-handler-event-handling-jsf"}
44:{"id":1744,"views":454,"rating":4,"title":"Layouts in JSF- Tiles","url_title":"layouts-jsf-tiles"}
45:{"id":1960,"views":0,"rating":4,"title":"Java Virtual Machine","url_title":"java-virtual-machine-java"}
46:{"id":1961,"views":0,"rating":4,"title":"Interface in Java","url_title":"java-interface-in-java"}
47:{"id":1962,"views":0,"rating":4,"title":"Exception Handling in java","url_title":"exception-handling-in-java"}
48:{"id":1963,"views":0,"rating":4,"title":"Multithreading in java","url_title":"java-multithreading-in-java"}
49:{"id":1967,"views":0,"rating":4,"title":"Polymorphism in Java","url_title":"polymorphism-in-java"}
4a:{"id":1968,"views":0,"rating":4,"title":"Inheritance in Java","url_title":"java-inheritance-in-java"}
4b:{"id":1969,"views":0,"rating":4,"title":"Constructors in Java","url_title":"java-constructors-in-java"}
4c:{"id":1970,"views":0,"rating":4,"title":"Java Annotations","url_title":"java-annotations-in-java"}
4d:{"id":1971,"views":0,"rating":4,"title":"Encapsulation in java","url_title":"java-encapsulation-in-java"}
4e:{"id":1972,"views":0,"rating":4,"title":"Packages in java","url_title":"packages-in-java"}
4f:{"id":1973,"views":0,"rating":4,"title":"Java Regular Expressions","url_title":"java-regular-expressions-in-java"}
50:{"id":1974,"views":0,"rating":4,"title":"Arraylist in Java","url_title":"java-arraylist-in-java"}
51:{"id":2008,"views":1006,"rating":4,"title":"Advanced Java Resume","url_title":"advanced-java-resume"}
52:{"id":2047,"views":579,"rating":4,"title":"Core Java Resume","url_title":"core-java-resume"}
53:{"id":2125,"views":1456,"rating":4.2,"title":"Java Stream Tutorial","url_title":"java-stream-tutorial"}
54:{"id":2126,"views":541,"rating":4.3,"title":"Java Swing Tutorial","url_title":"java-swing-tutorial"}
10:["$11","$12","$13","$14","$15","$16","$17","$18","$19","$1a","$1b","$1c","$1d","$1e","$1f","$20","$21","$22","$23","$24","$25","$26","$27","$28","$29","$2a","$2b","$2c","$2d","$2e","$2f","$30","$31","$32","$33","$34","$35","$36","$37","$38","$39","$3a","$3b","$3c","$3d","$3e","$3f","$40","$41","$42","$43","$44","$45","$46","$47","$48","$49","$4a","$4b","$4c","$4d","$4e","$4f","$50","$51","$52","$53","$54"]
56:{"id":4,"blog_id":416,"blog_title":"Embedded Systems Interview Questions","blog_url_title":"interview-questions-on-embedded-systems","order_value":5,"views":1547}
57:{"id":5,"blog_id":1237,"blog_title":"Types of Pointers in C","blog_url_title":"explain-different-types-pointers-c-language","order_value":6,"views":14352}
58:{"id":6,"blog_id":391,"blog_title":"Oracle Procure To Pay Interview Questions","blog_url_title":"interview-questions-on-oracle-procure-to-pay","order_value":1,"views":4352}
59:{"id":7,"blog_id":1216,"blog_title":"Characteristics of C Language","blog_url_title":"characteristics-of-c-language","order_value":2,"views":10834}
5a:{"id":8,"blog_id":939,"blog_title":"Salesforce Sample Triggers with different Scenarios","blog_url_title":"15-sample-triggers-different-scenarios","order_value":3,"views":11712}
5b:{"id":9,"blog_id":344,"blog_title":"Oracle Financials Interview Questions","blog_url_title":"oracle-financials-interview-questions-and-answers","order_value":4,"views":9437}
5c:{"id":10,"blog_id":441,"blog_title":"Service Desk Analyst Interview Questions","blog_url_title":"interview-questions-on-service-desk-analyst","order_value":7,"views":5421}
5d:{"id":11,"blog_id":381,"blog_title":"SAP OOPS ABAP Interview Questions","blog_url_title":"interview-questions-on-sap-oops-abap","order_value":8,"views":5421}
5e:{"id":12,"blog_id":380,"blog_title":"SAP Adobe Forms Interview Questions","blog_url_title":"interview-questions-on-sap-adobe-forms","order_value":9,"views":1875}
5f:{"id":13,"blog_id":2079,"blog_title":"Power Apps Interview Questions","blog_url_title":"powerapps-interview-questions","order_value":10,"views":7541}
55:["$56","$57","$58","$59","$5a","$5b","$5c","$5d","$5e","$5f"]
61:{"id":2,"course":"Core Java Training","rating":"4.8","enrolled":"5703","url_title":"core-java-training"}
62:{"id":10,"course":"Python Training","rating":"4.9","enrolled":"4549","url_title":"python-training"}
63:{"id":44,"course":"Node JS Training","rating":"4.8","enrolled":"2852","url_title":"node-js-training"}
64:{"id":65,"course":"LabVIEW Training","rating":"4.8","enrolled":"96","url_title":"labview-training"}
65:{"id":70,"course":"Mean Stack Training","rating":"4.5","enrolled":"2491","url_title":"mean-stack-training"}
66:{"id":72,"course":"Microservices Training","rating":"4.5","enrolled":"2543 ","url_title":"microservices-training"}
67:{"id":78,"course":"Ruby on Rails Training","rating":"4.8","enrolled":"1254","url_title":"ruby-rails-training"}
68:{"id":98,"course":"Oracle Apex Training","rating":"4.7","enrolled":"945","url_title":"oracle-apex-training"}
69:{"id":99,"course":"Oracle OAF Training","rating":"4.9","enrolled":"4322","url_title":"oracle-oaf-training"}
6a:{"id":160,"course":"Java Spring Training","rating":"4.7","enrolled":"1943","url_title":"java-spring-training"}
6b:{"id":187,"course":"ReactJS Training","rating":"4.4","enrolled":"138","url_title":"reactjs-training"}
6c:{"id":229,"course":"Advanced Java Training","rating":"4.5","enrolled":"120","url_title":"advanced-java-training"}
6d:{"id":231,"course":".Net Training","rating":"4.1","enrolled":"120","url_title":"net-training"}
6e:{"id":236,"course":"Android Development Training","rating":"4.7","enrolled":"1562","url_title":"android-development-training"}
6f:{"id":245,"course":"JavaScript Training","rating":"4.8","enrolled":"5789","url_title":"javascript-training"}
60:["$61","$62","$63","$64","$65","$66","$67","$68","$69","$6a","$6b","$6c","$6d","$6e","$6f"]
70:{"id":2927,"name":"Java Stream Tutorial","slug":"java-stream-tutorial","type":"articles","status":1}
d:{"id":2125,"blog_category":174,"blog_type":1,"wp_id":1,"excerpt":"","table_of_content":"<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#why-java-stream\"><span style=\"font-weight: 400;\">Why Javastream?</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#java-stream-operations\"><span style=\"font-weight: 400;\">JavaStream Operations</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#method-types-and-pipelines\"><span style=\"font-weight: 400;\">Method types and pipelines</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#lazy-evaluation\"><span style=\"font-weight: 400;\">Lazy evaluation</span></a></span></li>\n</ul>","description":"$e","title":"Java Stream Tutorial","url_title":"java-stream-tutorial","image_url":"","meta_title":"Java 8 Stream Tutorial | Java Stream API Tutorial","meta_desc":"Java 8 Stream tutorial for beginners. Learn how to use Java streams with examples of intermediate and advanced level programming.","views":1456,"rating":4.2,"author":"1","top_level_cat_id":"4","author_desc":"","course_id":"2","created_at":"2022-10-31T07:50:13.000Z","updated_at":"2022-10-31T07:50:13.000Z","status":1,"video_schema_name":"","video_schema_upload_date":"","video_schema_description":"","faq_schema_q1":"","faq_schema_a1":"","faq_schema_q2":"","faq_schema_a2":"","faq_schema_q3":"","faq_schema_a3":"","like_counter":1,"author_details":"$f","related_blogs":"$10","recommended_articles":"$55","recommended_programs":"$60","category_name":"Core Java","category_url":"core-java","type_d":"$70"}
2:["$","$Lb",null,{"rohit":{"trending":{"id":2125,"blog_category":174,"blog_type":1,"wp_id":1,"excerpt":"","table_of_content":"<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#why-java-stream\"><span style=\"font-weight: 400;\">Why Javastream?</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#java-stream-operations\"><span style=\"font-weight: 400;\">JavaStream Operations</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#method-types-and-pipelines\"><span style=\"font-weight: 400;\">Method types and pipelines</span></a></span></li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><a style=\"color: #000000;\" href=\"#lazy-evaluation\"><span style=\"font-weight: 400;\">Lazy evaluation</span></a></span></li>\n</ul>","description":"$c","title":"Java Stream Tutorial","url_title":"java-stream-tutorial","image_url":"","meta_title":"Java 8 Stream Tutorial | Java Stream API Tutorial","meta_desc":"Java 8 Stream tutorial for beginners. Learn how to use Java streams with examples of intermediate and advanced level programming.","views":1456,"rating":4.2,"author":"1","top_level_cat_id":"4","author_desc":"","course_id":"2","created_at":"2022-10-31T07:50:13.000Z","updated_at":"2022-10-31T07:50:13.000Z","status":1,"video_schema_name":"","video_schema_upload_date":"","video_schema_description":"","faq_schema_q1":"","faq_schema_a1":"","faq_schema_q2":"","faq_schema_a2":"","faq_schema_q3":"","faq_schema_a3":"","like_counter":1,"author_details":{"id":1,"author_designation":"Content Writer","author_name":"TekSlate","author_bio":"<p>TekSlate is the best online training provider in delivering world-class IT skills to individuals and corporates from all parts of the globe. We are proven experts in accumulating every need of an IT skills upgrade aspirant and have delivered excellent services. We aim to bring you all the essentials to learn and master new technologies in the market with our articles, blogs, and videos. Build your career success with us, enhancing most in-demand skills in the market.</p>","author_img":"https://tekslateassets.s3.amazonaws.com/images/logo.svg","author_url":"tekslate","article_count":"0","field_of_intrest":"","status":1},"related_blogs":[{"id":41,"views":3251,"rating":4.4,"title":"JSF Tutorial","url_title":"jsf-tutorials"},{"id":93,"views":1088,"rating":4.3,"title":"Advanced Java Tutorial","url_title":"advanced-java-tutorials"},{"id":103,"views":443,"rating":4,"title":"Core Java Tutorial","url_title":"core-java-tutorials"},{"id":150,"views":0,"rating":4,"title":"JAVA Tutorials","url_title":"java-tutorials"},{"id":174,"views":653,"rating":4.4,"title":"Data Structures Interview Questions","url_title":"data-structures-interview-questions-answers"},{"id":181,"views":615,"rating":4,"title":"JSF Interview Questions & Answers","url_title":"jsf-interview-questions-answers"},{"id":192,"views":0,"rating":4,"title":"Advanced Java Interview Questions & Answers","url_title":"advanced-java-interview-questions-answers"},{"id":277,"views":5897,"rating":4.7,"title":"Advanced Java Interview Questions","url_title":"advanced-java-interview-questions"},{"id":318,"views":542,"rating":4,"title":"Core Java Interview Questions","url_title":"core-java-interview-questions"},{"id":477,"views":946,"rating":4,"title":"JSF Interview Questions And Answers","url_title":"jsf-interview-questions-and-answers"},{"id":492,"views":798,"rating":4,"title":"Data Structures Interview Questions","url_title":"interview-questions-on-data-structures"},{"id":1181,"views":549,"rating":4,"title":"History of MVC Architecture","url_title":"history-mvc-architecture"},{"id":1248,"views":1324,"rating":4.1,"title":"Linear Queues in Data Structures","url_title":"linear-queues-in-data-structures"},{"id":1249,"views":948,"rating":4,"title":"Circular Queue in Data Structures","url_title":"circular-queue-in-data-structures"},{"id":1250,"views":710,"rating":4.2,"title":"Postfix expression in Data Structures","url_title":"postfix-expression-in-data-structures"},{"id":1251,"views":607,"rating":4,"title":"Linear search in Data Structures","url_title":"linear-search-in-data-structures"},{"id":1254,"views":1079,"rating":4,"title":"Selection sort in Data Structures","url_title":"selection-sort-in-data-structures"},{"id":1255,"views":963,"rating":4,"title":"Insertion sort in Data Structures","url_title":"insertion-sort-in-data-structures"},{"id":1256,"views":488,"rating":4,"title":"Quick sort in Data Structures","url_title":"quick-sort-in-data-structures"},{"id":1257,"views":441,"rating":4,"title":"Heap Sort in Data Structures","url_title":"heap-sort-in-data-structures"},{"id":1258,"views":640,"rating":4,"title":"Linked List in Data Structures","url_title":"linked-list-in-data-structures"},{"id":1259,"views":787,"rating":4,"title":"Circular linked list in Data Structures","url_title":"circular-linked-list-in-data-structures"},{"id":1260,"views":927,"rating":4,"title":"Doubly Linked List in Data Structures","url_title":"doubly-linked-list-in-data-structures"},{"id":1261,"views":0,"rating":4,"title":"Stack using Linked List in Data Structures","url_title":"stack-using-linked-list-in-data-structures"},{"id":1262,"views":1064,"rating":4,"title":"Queues using Linked list in Data Structures","url_title":"queues-using-linked-list-data-structures"},{"id":1263,"views":0,"rating":4,"title":"TREES in Data Structures","url_title":"trees-in-data-structures"},{"id":1264,"views":1077,"rating":4,"title":"Binary Trees in Data Structures","url_title":"binary-trees-in-data-structures"},{"id":1265,"views":287,"rating":4,"title":"Binary search tree in Data Structures","url_title":"binary-search-tree-in-data-structures"},{"id":1266,"views":1074,"rating":4,"title":"AVL Trees in Data Structures","url_title":"avl-trees-in-data-structures"},{"id":1267,"views":452,"rating":4,"title":"B Trees in Data Structures","url_title":"b-trees-in-data-structures"},{"id":1268,"views":916,"rating":4,"title":"Graphs in Data Structures","url_title":"graphs-in-data-structures"},{"id":1723,"views":979,"rating":4,"title":"Introduction to JSF","url_title":"introduction-jsf"},{"id":1724,"views":122,"rating":4,"title":"MVC Rules and Regulation in JSF","url_title":"mvc-rules-regulation-jsf"},{"id":1725,"views":544,"rating":4,"title":"Enterprise Application in JSF","url_title":"enterprise-application-jsf"},{"id":1726,"views":276,"rating":4,"title":"FrameWorks in JSF","url_title":"frameworks-jsf"},{"id":1727,"views":638,"rating":4,"title":"JSF Elements","url_title":"jsf-elements"},{"id":1728,"views":282,"rating":4,"title":"Creation and working with First Servlet in JSF","url_title":"creation-working-first-servlet-jsf"},{"id":1729,"views":387,"rating":4,"title":"STEPS TO DESIGN FIRST APPLICATION in JSF","url_title":"steps-design-first-application-jsf"},{"id":1730,"views":991,"rating":4,"title":"Developing Registration Application in JSF","url_title":"developing-registration-application-jsf"},{"id":1731,"views":722,"rating":4,"title":"STEPS TO DESIGN JSF 1.2 APPLICATION IN ECLIPSE IDE","url_title":"steps-design-jsf-1-2-application-eclipse-ide"},{"id":1732,"views":539,"rating":4,"title":"DIFFERENCE BET N JSF1.X &JSF 2.X","url_title":"difference-bet-n-jsf1-x-jsf-2-x"},{"id":1733,"views":430,"rating":4,"title":"Steps to use Hyperlinks in JSF pages","url_title":"steps-use-hyperlinks-jsf-pages"},{"id":1734,"views":435,"rating":4,"title":"Introduction to I18N Applications in JSF","url_title":"introduction-i18n-applications-jsf"},{"id":1735,"views":782,"rating":4.2,"title":"Developing I18N Applications in JSF","url_title":"developing-i18n-applications-jsf"},{"id":1736,"views":526,"rating":4,"title":"steps to provide I18N Support in JSF Application","url_title":"steps-provide-i18n-support-jsf-application"},{"id":1737,"views":187,"rating":4,"title":"VALIDATIONS in JSF","url_title":"validations-jsf"},{"id":1739,"views":570,"rating":4,"title":"JSF2 Validations Application","url_title":"jsf2-validations-application"},{"id":1740,"views":1021,"rating":4,"title":"Developing JSF2 Validations Application","url_title":"developing-jsf2-validations-application"},{"id":1741,"views":327,"rating":4,"title":"CONVERTERS IN JSF","url_title":"converters-jsf"},{"id":1742,"views":450,"rating":4,"title":"Basic GUI Components in JSF","url_title":"basic-gui-components-jsf"},{"id":1743,"views":0,"rating":4,"title":"Event Handler Event handling in JSF","url_title":"event-handler-event-handling-jsf"},{"id":1744,"views":454,"rating":4,"title":"Layouts in JSF- Tiles","url_title":"layouts-jsf-tiles"},{"id":1960,"views":0,"rating":4,"title":"Java Virtual Machine","url_title":"java-virtual-machine-java"},{"id":1961,"views":0,"rating":4,"title":"Interface in Java","url_title":"java-interface-in-java"},{"id":1962,"views":0,"rating":4,"title":"Exception Handling in java","url_title":"exception-handling-in-java"},{"id":1963,"views":0,"rating":4,"title":"Multithreading in java","url_title":"java-multithreading-in-java"},{"id":1967,"views":0,"rating":4,"title":"Polymorphism in Java","url_title":"polymorphism-in-java"},{"id":1968,"views":0,"rating":4,"title":"Inheritance in Java","url_title":"java-inheritance-in-java"},{"id":1969,"views":0,"rating":4,"title":"Constructors in Java","url_title":"java-constructors-in-java"},{"id":1970,"views":0,"rating":4,"title":"Java Annotations","url_title":"java-annotations-in-java"},{"id":1971,"views":0,"rating":4,"title":"Encapsulation in java","url_title":"java-encapsulation-in-java"},{"id":1972,"views":0,"rating":4,"title":"Packages in java","url_title":"packages-in-java"},{"id":1973,"views":0,"rating":4,"title":"Java Regular Expressions","url_title":"java-regular-expressions-in-java"},{"id":1974,"views":0,"rating":4,"title":"Arraylist in Java","url_title":"java-arraylist-in-java"},{"id":2008,"views":1006,"rating":4,"title":"Advanced Java Resume","url_title":"advanced-java-resume"},{"id":2047,"views":579,"rating":4,"title":"Core Java Resume","url_title":"core-java-resume"},{"id":2125,"views":1456,"rating":4.2,"title":"Java Stream Tutorial","url_title":"java-stream-tutorial"},{"id":2126,"views":541,"rating":4.3,"title":"Java Swing Tutorial","url_title":"java-swing-tutorial"}],"recommended_articles":[{"id":4,"blog_id":416,"blog_title":"Embedded Systems Interview Questions","blog_url_title":"interview-questions-on-embedded-systems","order_value":5,"views":1547},{"id":5,"blog_id":1237,"blog_title":"Types of Pointers in C","blog_url_title":"explain-different-types-pointers-c-language","order_value":6,"views":14352},{"id":6,"blog_id":391,"blog_title":"Oracle Procure To Pay Interview Questions","blog_url_title":"interview-questions-on-oracle-procure-to-pay","order_value":1,"views":4352},{"id":7,"blog_id":1216,"blog_title":"Characteristics of C Language","blog_url_title":"characteristics-of-c-language","order_value":2,"views":10834},{"id":8,"blog_id":939,"blog_title":"Salesforce Sample Triggers with different Scenarios","blog_url_title":"15-sample-triggers-different-scenarios","order_value":3,"views":11712},{"id":9,"blog_id":344,"blog_title":"Oracle Financials Interview Questions","blog_url_title":"oracle-financials-interview-questions-and-answers","order_value":4,"views":9437},{"id":10,"blog_id":441,"blog_title":"Service Desk Analyst Interview Questions","blog_url_title":"interview-questions-on-service-desk-analyst","order_value":7,"views":5421},{"id":11,"blog_id":381,"blog_title":"SAP OOPS ABAP Interview Questions","blog_url_title":"interview-questions-on-sap-oops-abap","order_value":8,"views":5421},{"id":12,"blog_id":380,"blog_title":"SAP Adobe Forms Interview Questions","blog_url_title":"interview-questions-on-sap-adobe-forms","order_value":9,"views":1875},{"id":13,"blog_id":2079,"blog_title":"Power Apps Interview Questions","blog_url_title":"powerapps-interview-questions","order_value":10,"views":7541}],"recommended_programs":[{"id":2,"course":"Core Java Training","rating":"4.8","enrolled":"5703","url_title":"core-java-training"},{"id":10,"course":"Python Training","rating":"4.9","enrolled":"4549","url_title":"python-training"},{"id":44,"course":"Node JS Training","rating":"4.8","enrolled":"2852","url_title":"node-js-training"},{"id":65,"course":"LabVIEW Training","rating":"4.8","enrolled":"96","url_title":"labview-training"},{"id":70,"course":"Mean Stack Training","rating":"4.5","enrolled":"2491","url_title":"mean-stack-training"},{"id":72,"course":"Microservices Training","rating":"4.5","enrolled":"2543 ","url_title":"microservices-training"},{"id":78,"course":"Ruby on Rails Training","rating":"4.8","enrolled":"1254","url_title":"ruby-rails-training"},{"id":98,"course":"Oracle Apex Training","rating":"4.7","enrolled":"945","url_title":"oracle-apex-training"},{"id":99,"course":"Oracle OAF Training","rating":"4.9","enrolled":"4322","url_title":"oracle-oaf-training"},{"id":160,"course":"Java Spring Training","rating":"4.7","enrolled":"1943","url_title":"java-spring-training"},{"id":187,"course":"ReactJS Training","rating":"4.4","enrolled":"138","url_title":"reactjs-training"},{"id":229,"course":"Advanced Java Training","rating":"4.5","enrolled":"120","url_title":"advanced-java-training"},{"id":231,"course":".Net Training","rating":"4.1","enrolled":"120","url_title":"net-training"},{"id":236,"course":"Android Development Training","rating":"4.7","enrolled":"1562","url_title":"android-development-training"},{"id":245,"course":"JavaScript Training","rating":"4.8","enrolled":"5789","url_title":"javascript-training"}],"category_name":"Core Java","category_url":"core-java","type_d":{"id":2927,"name":"Java Stream Tutorial","slug":"java-stream-tutorial","type":"articles","status":1}},"type":"articles","categories":[]},"data":"$d"}]
a:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Java 8 Stream Tutorial | Java Stream API Tutorial"}],["$","meta","3",{"name":"description","content":"Java 8 Stream tutorial for beginners. Learn how to use Java streams with examples of intermediate and advanced level programming."}],["$","meta","4",{"name":"application-name","content":"tekslatetutor"}],["$","meta","5",{"name":"generator","content":"tekslatetutor"}],["$","link","6",{"rel":"canonical","href":"https://tekslate.com/java-stream-tutorial"}],["$","meta","7",{"property":"og:title","content":"Java 8 Stream Tutorial | Java Stream API Tutorial"}],["$","meta","8",{"property":"og:description","content":"Java 8 Stream tutorial for beginners. Learn how to use Java streams with examples of intermediate and advanced level programming."}],["$","meta","9",{"property":"og:url","content":"https://tekslate.com/java-stream-tutorial"}],["$","meta","10",{"property":"og:site_name","content":"tekslatetutor"}],["$","meta","11",{"property":"og:locale","content":"en_US"}],["$","meta","12",{"property":"og:image","content":"https://tekslateassets.s3.amazonaws.com/images/TekSlate_New+Colour.svg"}],["$","meta","13",{"property":"og:image:width","content":"1200"}],["$","meta","14",{"property":"og:image:height","content":"628"}],["$","meta","15",{"property":"og:type","content":"website"}],["$","meta","16",{"name":"twitter:card","content":"summary"}],["$","meta","17",{"name":"twitter:creator","content":"@tekslatetutor"}],["$","meta","18",{"name":"twitter:title","content":"Java 8 Stream Tutorial | Java Stream API Tutorial"}],["$","meta","19",{"name":"twitter:description","content":"Java 8 Stream tutorial for beginners. Learn how to use Java streams with examples of intermediate and advanced level programming."}],["$","meta","20",{"name":"twitter:image","content":"https://tekslateassets.s3.amazonaws.com/images/TekSlate_New+Colour.svg"}],["$","link","21",{"rel":"icon","href":"https://tekslateassets.s3.amazonaws.com/images/favicon.svg"}]]
1:null
