<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Praven Kumar</title>
    <description>The latest articles on Forem by Praven Kumar (@prk0906).</description>
    <link>https://forem.com/prk0906</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3861064%2F9ea3fef1-aeed-49ef-ba1f-394739984238.png</url>
      <title>Forem: Praven Kumar</title>
      <link>https://forem.com/prk0906</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/prk0906"/>
    <language>en</language>
    <item>
      <title>💡 Java Streams – Find First Non-Repeating Character</title>
      <dc:creator>Praven Kumar</dc:creator>
      <pubDate>Fri, 10 Apr 2026 16:55:26 +0000</pubDate>
      <link>https://forem.com/prk0906/java-streams-find-first-non-repeating-character-3871</link>
      <guid>https://forem.com/prk0906/java-streams-find-first-non-repeating-character-3871</guid>
      <description>&lt;p&gt;Input: Programming&lt;br&gt;
Output: P&lt;br&gt;
🔹 Step 1: Convert String to Character Stream&lt;br&gt;
 .word.chars()-&amp;gt;Converts the string into an IntStream (ASCII values of characters) &lt;br&gt;
🔹 Step 2: Convert int → Character&lt;br&gt;
.mapToObj(ch -&amp;gt; (char) ch)&lt;br&gt;
Converts each ASCII value into a Character object&lt;br&gt;
🔹 Step 3: Group and Count Characters&lt;br&gt;
.collect(groupingBy(Function.identity(), counting()))&lt;br&gt;
Groups characters by themselves&lt;br&gt;
Counts how many times each character appears&lt;br&gt;
📌 Example Output:&lt;br&gt;
{a=2, b=1, c=1}&lt;br&gt;
🔹 Step 4: Filter Non-Repeating Characters&lt;br&gt;
.filter(entry -&amp;gt; entry.getValue() == 1)&lt;br&gt;
Keeps only characters that appear once&lt;br&gt;
🔹 Step 5: Extract Keys (Characters)&lt;br&gt;
.map(Map.Entry::getKey)&lt;br&gt;
🔹 Step 6: Get First Non-Repeating Character&lt;br&gt;
.findFirst().get();&lt;br&gt;
Returns the first unique character&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl29vwixu5yhedr37g2bj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl29vwixu5yhedr37g2bj.png" alt=" " width="800" height="665"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>java</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>🔍 Finding Missing Numbers in an Array using Java Streams</title>
      <dc:creator>Praven Kumar</dc:creator>
      <pubDate>Mon, 06 Apr 2026 03:11:58 +0000</pubDate>
      <link>https://forem.com/prk0906/finding-missing-numbers-in-an-array-using-java-streams-1d1d</link>
      <guid>https://forem.com/prk0906/finding-missing-numbers-in-an-array-using-java-streams-1d1d</guid>
      <description>&lt;p&gt;Input: [1,2,1,2,5,8]&lt;br&gt;
Output: [3,4,6,7]&lt;br&gt;
🧠 Approach:&lt;br&gt;
1️⃣ Find minimum and maximum values&lt;br&gt;
2️⃣ Store elements in a Set for fast lookup&lt;br&gt;
3️⃣ Generate range between min and max&lt;br&gt;
4️⃣ Filter out numbers that are not present&lt;br&gt;
❓ Why rangeClosed() and not range()?&lt;br&gt;
IntStream.range(start, end) → excludes end value&lt;br&gt;
IntStream.rangeClosed(start, end) → includes end value&lt;br&gt;
👉 Example:&lt;br&gt;
range(1, 5) → 1,2,3,4&lt;br&gt;
rangeClosed(1, 5) → 1,2,3,4,5&lt;br&gt;
💡 Since we want to check all numbers from min to max (inclusive),&lt;br&gt;
we use rangeClosed(min, max).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln1kq7uu11x96hbqgbz1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fln1kq7uu11x96hbqgbz1.png" alt=" " width="735" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>java8</category>
      <category>streams</category>
    </item>
    <item>
      <title>🚀 Java Streams – Separate Even &amp; Odd Numbers in One Line! Ever wondered how to split a list into even and odd numbers using Java Streams?</title>
      <dc:creator>Praven Kumar</dc:creator>
      <pubDate>Sun, 05 Apr 2026 10:20:33 +0000</pubDate>
      <link>https://forem.com/prk0906/java-streams-separate-even-odd-numbers-in-one-line-ever-wondered-how-to-split-a-list-into-2l7j</link>
      <guid>https://forem.com/prk0906/java-streams-separate-even-odd-numbers-in-one-line-ever-wondered-how-to-split-a-list-into-2l7j</guid>
      <description>&lt;p&gt;🤔&lt;br&gt;
✅ Approach 1: Using partitioningBy&lt;br&gt;
🧠 Key Point:&lt;br&gt;
.Splits into only 2 groups (true / false)&lt;br&gt;
.Best when condition is boolean&lt;br&gt;
✅ Approach 2: Using groupingBy&lt;br&gt;
🧠 Key Point:&lt;br&gt;
.Allows custom grouping (Even / Odd)&lt;br&gt;
.More flexible than partitioning&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9cofnzufnh74nruiza1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs9cofnzufnh74nruiza1.png" alt=" " width="800" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>streamsapi</category>
      <category>java8</category>
    </item>
    <item>
      <title>Join a list of strings with '[' as prefix, ']' as suffix, and ',' as delimiter using streams.</title>
      <dc:creator>Praven Kumar</dc:creator>
      <pubDate>Sat, 04 Apr 2026 13:53:22 +0000</pubDate>
      <link>https://forem.com/prk0906/join-a-list-of-strings-with-as-prefix-as-suffix-and-as-delimiter-using-streams-1lc3</link>
      <guid>https://forem.com/prk0906/join-a-list-of-strings-with-as-prefix-as-suffix-and-as-delimiter-using-streams-1lc3</guid>
      <description>&lt;p&gt;Step 1: Convert List → Stream -&amp;gt; &lt;strong&gt;languageList.stream()&lt;/strong&gt;&lt;br&gt;
Step 2: Collecting using joining()&lt;br&gt;
&lt;strong&gt;Collectors.joining(delimiter, prefix, suffix)-&amp;gt;.collect(Collectors.joining(",", "[", "]"))&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;𝐂𝐨𝐥𝐥𝐞𝐜𝐭𝐨𝐫𝐬.𝐣𝐨𝐢𝐧𝐢𝐧𝐠(",", "[", "]") 𝐣𝐨𝐢𝐧𝐬 𝐭𝐡𝐞 𝐞𝐥𝐞𝐦𝐞𝐧𝐭𝐬 𝐨𝐟 𝐚 𝐬𝐭𝐫𝐞𝐚𝐦 𝐢𝐧𝐭𝐨 𝐚 𝐬𝐢𝐧𝐠𝐥𝐞 𝐒𝐭𝐫𝐢𝐧𝐠, 𝐬𝐞𝐩𝐚𝐫𝐚𝐭𝐞𝐝 𝐛𝐲 𝐚 𝐜𝐨𝐦𝐦𝐚, 𝐚𝐧𝐝 𝐚𝐝𝐝𝐬 [ 𝐚𝐭 𝐭𝐡𝐞 𝐛𝐞𝐠𝐢𝐧𝐧𝐢𝐧𝐠 𝐚𝐧𝐝 ] 𝐚𝐭 𝐭𝐡𝐞 𝐞𝐧𝐝.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qcm43evuzjr784iwng7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qcm43evuzjr784iwng7.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>java8</category>
      <category>streams</category>
    </item>
  </channel>
</rss>
