<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Atta-Ur-Rehman Shah</title>
        <link>https://attacomsian.com/</link>
        <description>Atta is a Full Stack developer specialized in Java and MEAN Stack. He writes about modern JavaScript, Spring Boot, and all things web development.</description>
        <lastBuildDate>Fri, 16 Jun 2023 06:32:47 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>attacomsian.com</generator>
        <language>en</language>
        <image>
            <title>Atta-Ur-Rehman Shah</title>
            <url>https://attacomsian.com/img/banner.jpg</url>
            <link>https://attacomsian.com/</link>
        </image>
        <copyright>&amp;copy; 2020 Atta. All rights reserved.</copyright>
        <category>Tutorials</category>
        <category>Web Development</category>
        <category>Web Design</category>
        <category>DevOps</category>
        <category>Startups</category>
        <item>
            <title><![CDATA[Get the length of a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-get-length</link>
            <guid>z2AXlk3ZAW</guid>
            <pubDate>Sun, 11 Dec 2022 03:38:42 GMT</pubDate>
            <description><![CDATA[Learn how to use the size property to get the number of elements in a Map object in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>The <code>size</code> property can be used to determine the length of a <code>Map</code> object. It returns the number of elements present in the <code>Map</code>.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span>size<span class="token punctuation">)</span> <span class="token comment">// 0</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Atta&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span>size<span class="token punctuation">)</span> <span class="token comment">// 2</span>
</code></pre>
<p>The <code>size</code> property provides an integer value representing the number of entries in the <code>Map</code> object.</p>
<p>Unlike the <code>length</code> property of an array, which can be found <a href="https://attacomsian.com/blog/javascript-arrays#the-length-property">here</a>, the <code>size</code> property of a map is read-only and cannot be modified:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Atta&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span>size<span class="token punctuation">)</span> <span class="token comment">// 2</span>

map<span class="token punctuation">.</span>size <span class="token operator">=</span> <span class="token number">6</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span>size<span class="token punctuation">)</span> <span class="token comment">// 2 --&gt; Remains the same</span>
</code></pre>
<p>In contrast, the <code>length</code> property of an array is writable and can be assigned a new value to increase or decrease the size of the array:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> numbers <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">]</span>

<span class="token comment">// Truncate to a 3-element array</span>
numbers<span class="token punctuation">.</span>length <span class="token operator">=</span> <span class="token number">3</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>numbers<span class="token punctuation">)</span>
<span class="token comment">// [1, 2, 3]</span>

<span class="token comment">// Increase the size to 5</span>
numbers<span class="token punctuation">.</span>length <span class="token operator">=</span> <span class="token number">5</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>numbers<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// [1, 2, 3, &lt;2 empty items&gt;]</span>
</code></pre>
<p>To learn more about the <code>Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-get-length.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Delete an element from a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-delete-element</link>
            <guid>f4sTleQDoT</guid>
            <pubDate>Sun, 11 Dec 2022 03:19:53 GMT</pubDate>
            <description><![CDATA[Learn how to use the delete() method to remove an element from a Map in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>The <code>delete()</code> method can be utilized to remove an element from a <code>Map</code> object. This method takes the key name of the element as a parameter. It returns <code>true</code> if the element was present in the <code>Map</code> object and successfully removed, or <code>false</code> if the element does not exist.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;United States&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
<span class="token comment">// Map(3) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;Alex Hales&apos;,</span>
<span class="token comment">//   &apos;age&apos; =&gt; 27,</span>
<span class="token comment">//   &apos;country&apos; =&gt; &apos;United States&apos;</span>
<span class="token comment">// }</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">delete</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// true</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">delete</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// false (already removed)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">delete</span><span class="token punctuation">(</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// false (not found)</span>
</code></pre>
<p>To delete all elements in a <code>Map</code> object, the <code>clear()</code> method can be used:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;United States&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span>size<span class="token punctuation">)</span> <span class="token comment">// 0</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span> <span class="token comment">// Map(0) {}</span>
</code></pre>
<p>To gain a deeper understanding of the <code>Map</code> object and how to create collections of key-value pairs in JavaScript, refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-delete-element.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Get the first element of a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-get-first-element</link>
            <guid>MtnCWTRjRm</guid>
            <pubDate>Sat, 10 Dec 2022 18:56:41 GMT</pubDate>
            <description><![CDATA[Learn how to use the entries() method to get the first element in a Map using JavaScript.]]></description>
            <content:encoded><![CDATA[<p>To retrieve the first element of a <code>Map</code> object, there are multiple approaches you can take.</p>
<ol>
<li>Using the <code>entries()</code> method and <code>next()</code>:</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;United States&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> first <span class="token operator">=</span> map<span class="token punctuation">.</span><span class="token function">entries</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>value

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>first<span class="token punctuation">)</span>
<span class="token comment">// [&apos;name&apos;, &apos;Alex Hales&apos;]</span>
</code></pre>
<p>The <code>entries()</code> method returns an iterator object with key-value pairs. By calling <code>next()</code> once, you can retrieve the first element from the iterator.</p>
<ol start="2">
<li>Converting to an array and accessing the first element:</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;United States&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> first <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token comment">// or [...map][0]</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>first<span class="token punctuation">)</span>
<span class="token comment">// [&apos;name&apos;, &apos;Alex Hales&apos;]</span>
</code></pre>
<p>By using <a href="https://attacomsian.com/blog/javascript-array-from"><code>Array.from(map)</code></a> or the spread operator (<code>...map</code>), you can convert the <code>Map</code> object into an array. Then, accessing the element at index <code>0</code> will give you the first key-value pair.</p>
<ol start="3">
<li>Using array destructuring with <code>keys()</code> or <code>values()</code>:</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;United States&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> <span class="token punctuation">[</span>firstKey<span class="token punctuation">]</span> <span class="token operator">=</span> map<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>firstKey<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// &apos;name&apos;</span>

<span class="token keyword">const</span> <span class="token punctuation">[</span>firstVal<span class="token punctuation">]</span> <span class="token operator">=</span> map<span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>firstVal<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// &apos;Alex Hales&apos;</span>
</code></pre>
<p>You can utilize <a href="https://attacomsian.com/blog/javascript-object-array-destructuring#array-destructuring">array destructuring</a> to extract the first key or value by calling <code>keys()</code> or <code>values()</code> on the <code>Map</code> object.</p>
<p>To learn more about the <code>Map</code> object and working with key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-get-first-element.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Get an element from a Map using JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-get-element</link>
            <guid>ahCzYNjTqy</guid>
            <pubDate>Sat, 10 Dec 2022 18:20:40 GMT</pubDate>
            <description><![CDATA[Learn how to use the get() method to get an element from a Map object in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>The <code>get()</code> method is used to retrieve an element from a <code>Map</code> object in JavaScript. This method accepts the key of the element as an argument and returns the associated value. If the key is not found in the <code>Map</code>, it returns <code>undefined</code>.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">29</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;UX Designer&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// John Doe</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// 29</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// UX Designer</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;address&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// undefined</span>
</code></pre>
<p>If the value associated with the specified key is an object, the <code>get()</code> method returns a reference to that object. Any modifications made to the object will be reflected inside the <code>Map</code> object as well:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> product <span class="token operator">=</span> <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Milk&apos;</span><span class="token punctuation">,</span> qty<span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span>
<span class="token keyword">const</span> prices <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">2.99</span><span class="token punctuation">]</span>

<span class="token keyword">const</span> items <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
items<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;product&apos;</span><span class="token punctuation">,</span> product<span class="token punctuation">)</span>
items<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;prices&apos;</span><span class="token punctuation">,</span> prices<span class="token punctuation">)</span>

items<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;product&apos;</span><span class="token punctuation">)</span><span class="token punctuation">.</span>qty <span class="token operator">=</span> <span class="token number">100</span>
items<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;prices&apos;</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token number">4.55</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>product<span class="token punctuation">)</span>
<span class="token comment">// { name: &apos;Milk&apos;, qty: 100 }</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>prices<span class="token punctuation">)</span>
<span class="token comment">// [ 2.99, 4.55 ]</span>
</code></pre>
<p>To delve deeper into the <code>Map</code> object and discover more about creating collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-get-element.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Update an element in a Map using JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-update-element</link>
            <guid>U7Pc0F6vFL</guid>
            <pubDate>Sun, 04 Dec 2022 15:56:58 GMT</pubDate>
            <description><![CDATA[Learn how to use the set() method to update an element in a Map using JavaScript.]]></description>
            <content:encoded><![CDATA[<p>The <code>set()</code> method is used to update or add an element&apos;s value in a <code>Map</code> object. It takes two parameters: the key and the new value. If the <code>Map</code> object already contains the key, the <code>set()</code> method updates its value. Otherwise, it adds a new key-value pair to the <code>Map</code>.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;scores&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">75</span><span class="token punctuation">,</span> <span class="token number">87</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;bio&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> age<span class="token operator">:</span> <span class="token number">27</span><span class="token punctuation">,</span> country<span class="token operator">:</span> <span class="token string">&apos;Pakistan&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
<span class="token comment">// Map(3) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;Alex&apos;,</span>
<span class="token comment">//   &apos;scores&apos; =&gt; [75, 87],</span>
<span class="token comment">//   &apos;bio&apos; =&gt; { age: 27, country: &apos;Pakistan&apos; }</span>
<span class="token comment">// }</span>

<span class="token comment">// Update name (STRING)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// Alex Hales</span>

<span class="token comment">// Update scores (ARRAY)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;scores&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token operator">...</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;scores&apos;</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">99</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;scores&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// [75, 87, 99]</span>

<span class="token comment">// Update bio (OBJECT)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;bio&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token operator">...</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;bio&apos;</span><span class="token punctuation">)</span><span class="token punctuation">,</span> job<span class="token operator">:</span> <span class="token string">&apos;Engineer&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&apos;bio&apos;</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment">// { age: 27, country: &apos;Pakistan&apos;, job: &apos;Engineer&apos; }</span>
</code></pre>
<p>In the above example, the <code>name</code>, <code>scores</code>, and <code>bio</code> elements are updated with new values using the <code>set()</code> method. The <code>name</code> is updated with a string value, <code>scores</code> with an array value by spreading the existing scores and adding a new score of 99, and <code>bio</code> with an object value by spreading the existing bio object and adding a <code>job</code> property.</p>
<p>You can also use the <code>set()</code> method to add new elements to a <code>Map</code> object:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Alex&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;scores&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">75</span><span class="token punctuation">,</span> <span class="token number">87</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;bio&apos;</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> age<span class="token operator">:</span> <span class="token number">27</span><span class="token punctuation">,</span> country<span class="token operator">:</span> <span class="token string">&apos;Pakistan&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;email&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;alex@example.com&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
<span class="token comment">// Map(4) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;Alex&apos;,</span>
<span class="token comment">//   &apos;scores&apos; =&gt; [75, 87],</span>
<span class="token comment">//   &apos;bio&apos; =&gt; { age: 27, country: &apos;Pakistan&apos; },</span>
<span class="token comment">//   &apos;email&apos; =&gt; &apos;alex@example.com&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>In this case, the <code>email</code> element is added to the <code>Map</code> object with its corresponding value.</p>
<p>To learn more about the <code>Map</code> object and how to utilize it to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-update-element.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Add an element to a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-map-add-element</link>
            <guid>0kCVqvzfHc</guid>
            <pubDate>Sun, 04 Dec 2022 15:54:36 GMT</pubDate>
            <description><![CDATA[Learn how to use the set() method to add elements to a Map in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>set()</code> method to dynamically add elements to a <code>Map</code> object in JavaScript. The <code>set()</code> method adds or updates an element with the given key and value, and it returns the <code>Map</code> object itself.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Pakistan&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;John Doe&apos;,</span>
<span class="token comment">//   &apos;age&apos; =&gt; 27,</span>
<span class="token comment">//   &apos;country&apos; =&gt; &apos;Pakistan&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>Since the <code>set()</code> method returns the same <code>Map</code> object, you can chain multiple <code>set()</code> calls together to add multiple elements:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">27</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;country&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Pakistan&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;John Doe&apos;,</span>
<span class="token comment">//   &apos;age&apos; =&gt; 27,</span>
<span class="token comment">//   &apos;country&apos; =&gt; &apos;Pakistan&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>It&apos;s important to note that <code>Map</code> keys are unique. If you call the <code>set()</code> method multiple times with the same key, it will update the value associated with that key:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(1) {</span>
<span class="token comment">//   &apos;name&apos; =&gt; &apos;John Doe&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>In the above example, the value for the key <code>&apos;name&apos;</code> is initially set to <code>&apos;John&apos;</code>, but it is then updated to <code>&apos;John Doe&apos;</code> in the second <code>set()</code> call.</p>
<p>The <code>Map</code> object allows you to store various types of objects as keys or values, including object literals, arrays, and functions:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> menu <span class="token operator">=</span> <span class="token punctuation">{</span>
  sandwich<span class="token operator">:</span> <span class="token string">&apos;&#x1F96A;&apos;</span><span class="token punctuation">,</span>
  cookie<span class="token operator">:</span> <span class="token string">&apos;&#x1F36A;&apos;</span><span class="token punctuation">,</span>
  popcorn<span class="token operator">:</span> <span class="token string">&apos;&#x1F37F;&apos;</span>
<span class="token punctuation">}</span>

<span class="token keyword">const</span> <span class="token function-variable function">pizza</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token string">&apos;&#x1F355;&apos;</span>

<span class="token keyword">const</span> foods <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

foods<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>menu<span class="token punctuation">,</span> <span class="token number">5.9</span><span class="token punctuation">)</span>
foods<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>pizza<span class="token punctuation">,</span> <span class="token string">&apos;What is Pizza?&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>foods<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>menu<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// 5.9</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>foods<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>pizza<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">// What is Pizza?</span>
</code></pre>
<p>In the above example, an object literal (<code>menu</code>) and a function (<code>pizza</code>) are used as keys in the <code>Map</code> object, and their corresponding values are retrieved using the <code>get()</code> method.</p>
<p>To learn more about the <code>Map</code> object and how to use it to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-map-add-element.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Convert a Map to an object in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-convert-map-to-object</link>
            <guid>PgekKRk2GZ</guid>
            <pubDate>Sun, 04 Dec 2022 15:52:08 GMT</pubDate>
            <description><![CDATA[Learn how to use the Object.fromEntries() method to convert a Map to an object in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>You can convert a <code>Map</code> object to an object in JavaScript using the <code>Object.fromEntries()</code> method. The <code>Object.fromEntries()</code> method takes an iterable of key-value pairs and returns a new object.</p>
<p>Here&apos;s an example of how you can convert a <code>Map</code> to an object using <code>Object.fromEntries()</code>:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Doctor&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> user <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">fromEntries</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span>
<span class="token comment">// { name: &apos;John Doe&apos;, age: 20, job: &apos;Doctor&apos; }</span>
</code></pre>
<p>In this example, the <code>Object.fromEntries()</code> method is called with the <code>map</code> object as the argument, which contains key-value pairs. The method converts the <code>map</code> object to an object literal with the same key-value pairs.</p>
<p>The <code>Object.fromEntries()</code> takes an iterable, such as a <code>Map</code>, and returns an object containing the key-value pairs of the iterable:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> kvPairs <span class="token operator">=</span> <span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Doctor&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span>

<span class="token keyword">const</span> user <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">fromEntries</span><span class="token punctuation">(</span>kvPairs<span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span>
<span class="token comment">// { name: &apos;John Doe&apos;, age: 20, job: &apos;Doctor&apos; }</span>
</code></pre>
<p>In this case, the <code>kvPairs</code> array directly represents the key-value pairs, and <code>Object.fromEntries()</code> converts them into an object.</p>
<p>An alternate approach is to use the <code>Map.forEach()</code> method to iterate over the entries of the <code>Map</code> object and create a new key on the object for each of them:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Doctor&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> user <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>

map<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">value<span class="token punctuation">,</span> key</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  user<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> value
<span class="token punctuation">}</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span>
<span class="token comment">// { name: &apos;John Doe&apos;, age: 20, job: &apos;Doctor&apos; }</span>
</code></pre>
<p>If you want to convert the object back to a <code>Map</code> object, you can use the <code>Object.entries()</code> method to get an array of key-value pairs from the object, and then create a new <code>Map</code> using the <code>Map</code> constructor:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> user <span class="token operator">=</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span>
  age<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
  job<span class="token operator">:</span> <span class="token string">&apos;Doctor&apos;</span>
<span class="token punctuation">}</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span>Object<span class="token punctuation">.</span><span class="token function">entries</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) { &apos;name&apos; =&gt; &apos;John Doe&apos;, &apos;age&apos; =&gt; 20, &apos;job&apos; =&gt; &apos;Doctor&apos; }</span>
</code></pre>
<p>In this example, <code>Object.entries(user)</code> returns an array of key-value pairs, which is then used to create a new <code>Map</code> object.</p>
<p>To learn more about the <code>Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-convert-map-to-object.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Convert an object to a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-convert-object-to-map</link>
            <guid>fYfnnuIwBM</guid>
            <pubDate>Sun, 04 Dec 2022 15:47:17 GMT</pubDate>
            <description><![CDATA[Learn how to convert an object to a Map object in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>To convert an object to a <code>Map</code> in JavaScript, you can use the <code>Object.entries()</code> method to get an array of key-value pairs from the object, and then create a new <code>Map</code> object using the <code>Map</code> constructor and the obtained array.</p>
<p>Here&apos;s an example of how you can convert an object to a <code>Map</code> using <code>Object.entries()</code>:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> user <span class="token operator">=</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span>
  age<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
  job<span class="token operator">:</span> <span class="token string">&apos;Engineer&apos;</span>
<span class="token punctuation">}</span>

<span class="token keyword">const</span> kvPairs <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">entries</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span>kvPairs<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) { &apos;name&apos; =&gt; &apos;John Doe&apos;, &apos;age&apos; =&gt; 20, &apos;job&apos; =&gt; &apos;Engineer&apos; }</span>
</code></pre>
<p>In this example, <code>Object.entries(user)</code> returns an array of key-value pairs from the <code>user</code> object, which is then used to create a new <code>Map</code> object using the <code>Map</code> constructor.</p>
<p>Alternatively, you can use the <code>Array.forEach()</code> method to <a href="https://attacomsian.com/blog/javascript-iterate-objects">iterate over the object</a> keys and add each key-value pair to the <code>Map</code> using the <code>Map.set()</code> method:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> user <span class="token operator">=</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span>
  age<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
  job<span class="token operator">:</span> <span class="token string">&apos;Engineer&apos;</span>
<span class="token punctuation">}</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">key</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>key<span class="token punctuation">,</span> user<span class="token punctuation">[</span>key<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
<span class="token comment">// Map(3) { &apos;name&apos; =&gt; &apos;John Doe&apos;, &apos;age&apos; =&gt; 20, &apos;job&apos; =&gt; &apos;Engineer&apos; }</span>
</code></pre>
<p>In this example, <code>Object.keys(user)</code> returns an array of keys from the <code>user</code> object. We then iterate over these keys using <code>forEach()</code> and use the <code>Map.set()</code> method to add each key-value pair to the <code>map</code> object.</p>
<p>If you want to convert the <code>Map</code> object back to an object, you can use the <code>Object.fromEntries()</code> method:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;name&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;age&apos;</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;job&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Engineer&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> user <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">fromEntries</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span>
<span class="token comment">// { name: &apos;John Doe&apos;, age: 20, job: &apos;Engineer&apos; }</span>
</code></pre>
<p>The <code>Object.fromEntries()</code> method takes an iterable of key-value pairs, such as an array, and returns a new object with the key-value pairs.</p>
<p>To learn more about the <code>Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-convert-object-to-map.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Convert an array of objects to a Map in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-convert-array-of-objects-to-map</link>
            <guid>GjzXHWJduS</guid>
            <pubDate>Sun, 04 Dec 2022 15:40:36 GMT</pubDate>
            <description><![CDATA[Learn how to convert an array of nested objects to a Map object in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>To convert an array of objects into a map in JavaScript, you can utilize the <code>Array.map()</code> method to <a href="https://attacomsian.com/blog/javascript-loops">iterate</a> through the array elements and create an array of key-value pairs. Subsequently, you can pass this array of key-value pairs to the <code>Map()</code> constructor to <a href="https://attacomsian.com/blog/javascript-create-map-object">create</a> a <code>Map</code> object.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> users <span class="token operator">=</span> <span class="token punctuation">[</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Admin&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Manager&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Ali Feroz&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;User&apos;</span> <span class="token punctuation">}</span>
<span class="token punctuation">]</span>

<span class="token keyword">const</span> kvPairs <span class="token operator">=</span> users<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">u</span> <span class="token operator">=&gt;</span> <span class="token punctuation">[</span>u<span class="token punctuation">.</span>name<span class="token punctuation">,</span> u<span class="token punctuation">.</span>role<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span>kvPairs<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) {</span>
<span class="token comment">//     &apos;John Doe&apos; =&gt; &apos;Admin&apos;,</span>
<span class="token comment">//     &apos;Alex Hales&apos; =&gt; &apos;Manager&apos;,</span>
<span class="token comment">//     &apos;Ali Feroz&apos; =&gt; &apos;User&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>In the above code, a callback function is provided to the <code>Array.map()</code> method, which is executed for each object in the array. During each iteration, an array is returned containing the key and value for each object, resulting in an array of key-value pairs:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> users <span class="token operator">=</span> <span class="token punctuation">[</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Admin&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Manager&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Ali Feroz&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;User&apos;</span> <span class="token punctuation">}</span>
<span class="token punctuation">]</span>

<span class="token keyword">const</span> kvPairs <span class="token operator">=</span> users<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">u</span> <span class="token operator">=&gt;</span> <span class="token punctuation">[</span>u<span class="token punctuation">.</span>name<span class="token punctuation">,</span> u<span class="token punctuation">.</span>role<span class="token punctuation">]</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>kvPairs<span class="token punctuation">)</span>

<span class="token comment">// [</span>
<span class="token comment">//     [ &apos;John Doe&apos;, &apos;Admin&apos; ],</span>
<span class="token comment">//     [ &apos;Alex Hales&apos;, &apos;Manager&apos; ],</span>
<span class="token comment">//     [ &apos;Ali Feroz&apos;, &apos;User&apos; ]</span>
<span class="token comment">// ]</span>
</code></pre>
<p>Finally, the resulting array is passed to the <code>Map()</code> constructor to create a new instance of the <code>Map</code> object.</p>
<p>Alternatively, you can use the <code>Array.forEach()</code> method to convert the array of objects to a map. This approach involves three steps:</p>
<ol>
<li>Create an empty map object using the <code>Map()</code> constructor.</li>
<li>Use the <code>forEach()</code> method on the array to iterate through all the objects.</li>
<li>During each iteration, utilize the <code>Map.set()</code> method to add the key-value pair to the map.</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> users <span class="token operator">=</span> <span class="token punctuation">[</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Admin&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;Manager&apos;</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
  <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;Ali Feroz&apos;</span><span class="token punctuation">,</span> role<span class="token operator">:</span> <span class="token string">&apos;User&apos;</span> <span class="token punctuation">}</span>
<span class="token punctuation">]</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

users<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token parameter">u</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span>u<span class="token punctuation">.</span>name<span class="token punctuation">,</span> u<span class="token punctuation">.</span>role<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>
<span class="token comment">// Map(3) {</span>
<span class="token comment">//     &apos;John Doe&apos; =&gt; &apos;Admin&apos;,</span>
<span class="token comment">//     &apos;Alex Hales&apos; =&gt; &apos;Manager&apos;,</span>
<span class="token comment">//     &apos;Ali Feroz&apos; =&gt; &apos;User&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>For further information on the <code>Map</code> object and its usage for creating collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-convert-array-of-objects-to-map.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Create a new Map object in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-create-map-object</link>
            <guid>LwAKmlYs68</guid>
            <pubDate>Sun, 04 Dec 2022 15:35:50 GMT</pubDate>
            <description><![CDATA[Learn how to create a new Map object from arrays and objects in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>In JavaScript, you can create a new map object using the <code>Map</code> constructor:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span><span class="token punctuation">)</span>

map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Admin&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Manager&apos;</span><span class="token punctuation">)</span>
map<span class="token punctuation">.</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token string">&apos;Ali Feroz&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;User&apos;</span><span class="token punctuation">)</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) {</span>
<span class="token comment">//     &apos;John Doe&apos; =&gt; &apos;Admin&apos;,</span>
<span class="token comment">//     &apos;Alex Hales&apos; =&gt; &apos;Manager&apos;,</span>
<span class="token comment">//     &apos;Ali Feroz&apos; =&gt; &apos;User&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>The <code>Map</code> constructor can also accept an iterable object, such as an array, to initialize a map object with values:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> users <span class="token operator">=</span> <span class="token punctuation">[</span>
  <span class="token punctuation">[</span><span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Admin&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;Alex Hales&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;Manager&apos;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
  <span class="token punctuation">[</span><span class="token string">&apos;Ali Feroz&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;User&apos;</span><span class="token punctuation">]</span>
<span class="token punctuation">]</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span>users<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) {</span>
<span class="token comment">//     &apos;John Doe&apos; =&gt; &apos;Admin&apos;,</span>
<span class="token comment">//     &apos;Alex Hales&apos; =&gt; &apos;Manager&apos;,</span>
<span class="token comment">//     &apos;Ali Feroz&apos; =&gt; &apos;User&apos;</span>
<span class="token comment">// }</span>
</code></pre>
<p>Additionally, you can convert a JavaScript <a href="https://attacomsian.com/blog/objects-prototypes-classes-javascript#objects">object</a> into a map object with values using the <code>Object.entries()</code> method:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> user <span class="token operator">=</span> <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token string">&apos;John Doe&apos;</span><span class="token punctuation">,</span> age<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span> job<span class="token operator">:</span> <span class="token string">&apos;Engineer&apos;</span> <span class="token punctuation">}</span>

<span class="token keyword">const</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Map</span><span class="token punctuation">(</span>Object<span class="token punctuation">.</span><span class="token function">entries</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span>

<span class="token comment">// Map(3) { &apos;name&apos; =&gt; &apos;John Doe&apos;, &apos;age&apos; =&gt; 20, &apos;job&apos; =&gt; &apos;Engineer&apos; }</span>
</code></pre>
<p>For further information on the <code>Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-create-map-object.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Remove trailing zeros from a number in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-remove-trailing-zeros-from-number</link>
            <guid>YdAEfxSmlT</guid>
            <pubDate>Mon, 28 Nov 2022 05:33:21 GMT</pubDate>
            <description><![CDATA[Learn how to use the parseFloat() method to remove trailing zeros from a number in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>parseFloat()</code> method to remove trailing zeros from a number in JavaScript. The <code>parseFloat()</code> method <a href="https://attacomsian.com/blog/convert-string-to-number-in-javascript#parsefloat-method">parses a string</a> into a floating point number while removing all the trailing zeros.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num <span class="token operator">=</span> <span class="token number">3.50000</span>
<span class="token keyword">const</span> res1 <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res1<span class="token punctuation">)</span> <span class="token comment">// 3.5</span>

<span class="token comment">// parse the string back to a number</span>
<span class="token keyword">const</span> str <span class="token operator">=</span> <span class="token string">&apos;6.870000&apos;</span>
<span class="token keyword">const</span> res2 <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res2<span class="token punctuation">)</span> <span class="token comment">// 6.87</span>
</code></pre>
<p>The <code>parseFloat()</code> method parses the given string and returns a floating point number without trailing zeros.</p>
<p>If you need to set a specific number of decimal places, use the <code>toFixed()</code> method. The <code>toFixed()</code> method returns a string representation of the number with the specified decimals.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num <span class="token operator">=</span> <span class="token number">2.347000</span>
<span class="token keyword">const</span> res <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>num<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span> <span class="token comment">// 2.35</span>
</code></pre>
<p>As you can see above, the <code>toFixed()</code> method rounds the number if required and pads the fractional part with zeros if the specified decimal places are more than the number has.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-remove-trailing-zeros-from-number.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Parse float with 2 decimal places in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-parse-float-two-decimal-places</link>
            <guid>LYCaChUUlS</guid>
            <pubDate>Sun, 27 Nov 2022 18:28:03 GMT</pubDate>
            <description><![CDATA[Learn how to use the toFixed() method to parse a float with 2 decimal places in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>To parse a float with 2 decimal places in JavaScript:</p>
<ol>
<li>Use the <code>parseFloat()</code> method to parse the string to a float point number.</li>
<li>Use the <code>toFixed()</code> method to <a href="https://attacomsian.com/blog/javascript-format-numbers">format</a> the floating point number to 2 decimal places.</li>
<li>The <code>toFixed()</code> method takes a number as input and returns a string representation of the number formatted to 2 decimal places.</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> str1 <span class="token operator">=</span> <span class="token string">&apos;2.567&apos;</span>
<span class="token keyword">const</span> res1 <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str1<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res1<span class="token punctuation">)</span> <span class="token comment">// 2.57</span>

<span class="token keyword">const</span> str2 <span class="token operator">=</span> <span class="token string">&apos;5&apos;</span>
<span class="token keyword">const</span> res2 <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str2<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res2<span class="token punctuation">)</span> <span class="token comment">// 5.00</span>

<span class="token keyword">const</span> str3 <span class="token operator">=</span> <span class="token string">&apos;4.5&apos;</span>
<span class="token keyword">const</span> res3 <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str3<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res3<span class="token punctuation">)</span> <span class="token comment">// 4.50</span>
</code></pre>
<p>We use the <code>parseFloat()</code> method to <a href="https://attacomsian.com/blog/convert-string-to-number-in-javascript#parsefloat-method">convert</a> the string into a floating point number.</p>
<p>Next, we called the <code>toFixed()</code> method on the pointing point number, passing it <code>2</code> as the number of digits to appear after the decimal point. It rounds the number and pads the decimal places with zero if necessary.</p>
<p>Note that the <code>toFixed()</code> method returns a string representing the pointing point number. If you need a number, as a result, call the <code>parseFloat()</code> method again:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> str <span class="token operator">=</span> <span class="token string">&apos;3.500&apos;</span>
<span class="token keyword">const</span> res <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span> <span class="token comment">// 3.50</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> res<span class="token punctuation">)</span> <span class="token comment">// string</span>

<span class="token comment">// Parse the string back to a number</span>
<span class="token keyword">const</span> num <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span> <span class="token comment">// 3.5</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> num<span class="token punctuation">)</span> <span class="token comment">// number</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-parse-float-two-decimal-places.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Format a number to 2 decimal places in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-format-numbers</link>
            <guid>sT9pv7qm6m</guid>
            <pubDate>Sun, 27 Nov 2022 05:52:35 GMT</pubDate>
            <description><![CDATA[Learn how to use the Number.toFixed() method to format numbers to 2 decimal places in JavaScript.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>toFixed()</code> method to format a number to 2 decimal places in JavaScript. The <code>toFixed()</code> method takes a number as input, representing the number of digits to appear after the decimal point, and returns a formatted string representing the given number.</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num1 <span class="token operator">=</span> <span class="token number">12.865</span>
<span class="token keyword">const</span> res1 <span class="token operator">=</span> num1<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res1<span class="token punctuation">)</span> <span class="token comment">// 12.87</span>

<span class="token keyword">const</span> num2 <span class="token operator">=</span> <span class="token number">19</span>
<span class="token keyword">const</span> res2 <span class="token operator">=</span> num2<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res2<span class="token punctuation">)</span> <span class="token comment">// 19.00</span>
</code></pre>
<p>In the above examples, we called the <code>toFixed()</code> method on the number, passing it <code>2</code> as a parameter to format the number to 2 decimal places.</p>
<p>The only parameter <code>toFixed()</code> takes is the number of digits to appear after the decimal point. The value must be between <code>0</code> and <code>100</code> inclusive. If this argument is skipped, it is treated as <code>0</code>. If you pass a value greater than <code>100</code>, a <code>RangeError</code> is thrown:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num1 <span class="token operator">=</span> <span class="token number">17.8654553</span>
<span class="token keyword">const</span> res1 <span class="token operator">=</span> num1<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res1<span class="token punctuation">)</span> <span class="token comment">// 18</span>

<span class="token keyword">const</span> num2 <span class="token operator">=</span> <span class="token number">55.3469</span>
<span class="token keyword">const</span> res2 <span class="token operator">=</span> num2<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">120</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res2<span class="token punctuation">)</span>
<span class="token comment">// RangeError: toFixed() digits argument must be between 0 and 100</span>
</code></pre>
<p>Using <code>toFixed()</code> with negative numbers may produce unexpected results. You need to group the negative number expression to get a formatted string:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> res1 <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">7.892</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res1<span class="token punctuation">)</span> <span class="token comment">// -7.89</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> res1<span class="token punctuation">)</span> <span class="token comment">// number --&gt; &#x274C;</span>

<span class="token keyword">const</span> res2 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">7.892</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res2<span class="token punctuation">)</span> <span class="token comment">// -7.89</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> res2<span class="token punctuation">)</span> <span class="token comment">// string --&gt;  &#x2705;</span>
</code></pre>
<p>If the number is wrapped in a string, you need to <a href="https://attacomsian.com/blog/convert-string-to-number-in-javascript#parsefloat-method">convert the string to a number</a> first before calling the <code>toFixed()</code> method:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> str <span class="token operator">=</span> <span class="token string">&apos;22.567&apos;</span>
<span class="token keyword">const</span> res <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span> <span class="token comment">// 22.57</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-format-numbers.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Round a number to 2 decimal places in JavaScript]]></title>
            <link>https://attacomsian.com/blog/javascript-round-numbers</link>
            <guid>6ZJRo8r9EB</guid>
            <pubDate>Sat, 26 Nov 2022 19:29:19 GMT</pubDate>
            <description><![CDATA[Learn how to round numbers in JavaScript using ceil(), floor(), and round() methods.]]></description>
            <content:encoded><![CDATA[<p>JavaScript provides three methods to round a number to the nearest integer, round up or round down. All these are static methods of the <code>Math</code> object that you can access directly to round numbers.</p>
<ol>
<li><code>Math.round()</code> &#x2014; Rounds a number to the nearest integer. If the fraction value is 0.5 or higher, round up.</li>
<li><code>Math.ceil()</code> &#x2014; Rounds up to the nearest integer.</li>
<li><code>Math.floor()</code> &#x2014; Rounds down to the nearest integer.</li>
</ol>
<pre rel="javascript" class="language-javascript"><code class="language-javascript">Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">5.287</span><span class="token punctuation">)</span> <span class="token comment">// 5</span>
Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">5.87</span><span class="token punctuation">)</span>  <span class="token comment">// 6</span>

<span class="token comment">// Rounds up</span>
Math<span class="token punctuation">.</span><span class="token function">ceil</span><span class="token punctuation">(</span><span class="token number">5.33</span><span class="token punctuation">)</span>   <span class="token comment">// 6</span>

<span class="token comment">// Rounds down</span>
Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span><span class="token number">5.87</span><span class="token punctuation">)</span>  <span class="token comment">// 5</span>
</code></pre>
<p>To round a number to 2 decimal places, you need to do a bit of calculation, as shown below:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">5.87456</span> <span class="token operator">*</span> <span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">100</span>

console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span> <span class="token comment">// 5.87</span>
</code></pre>
<p>Alternatively, you can use the <code>toFixed()</code> method to round a number to 2 decimal places in JavaScript. The <code>toFixed()</code> method rounds and formats the number to 2 decimal places:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num <span class="token operator">=</span> <span class="token number">5.87456</span>

<span class="token keyword">const</span> str <span class="token operator">=</span> num<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span> <span class="token comment">// 5.87</span>
</code></pre>
<p>The <code>toFixed()</code> method takes the number of digits after the decimal point as input and returns a string representation of the number.</p>
<p>To convert the string back to a floating point number, you can use the <code>parseFloat()</code> method or the <code>Number()</code> constructor:</p>
<pre rel="javascript" class="language-javascript"><code class="language-javascript"><span class="token keyword">const</span> num <span class="token operator">=</span> <span class="token number">5.87456</span>

<span class="token keyword">const</span> str <span class="token operator">=</span> num<span class="token punctuation">.</span><span class="token function">toFixed</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span> <span class="token comment">// 5.87</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> str<span class="token punctuation">)</span> <span class="token comment">// string</span>

<span class="token keyword">const</span> final <span class="token operator">=</span> <span class="token function">parseFloat</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>final<span class="token punctuation">)</span> <span class="token comment">// 5.87</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> final<span class="token punctuation">)</span> <span class="token comment">// number</span>

<span class="token keyword">const</span> final2 <span class="token operator">=</span> <span class="token function">Number</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>final2<span class="token punctuation">)</span> <span class="token comment">// 5.87</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> final2<span class="token punctuation">)</span> <span class="token comment">// number</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/javascript">JavaScript</category>
            <enclosure url="https://attacomsian.com/social-banner/javascript-round-numbers.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Calculate days between two OffsetDateTime objects in Java]]></title>
            <link>https://attacomsian.com/blog/java-days-between-two-offsetdatetime-objects</link>
            <guid>ygM149WJ6T</guid>
            <pubDate>Wed, 16 Nov 2022 18:29:05 GMT</pubDate>
            <description><![CDATA[Learn how to use the ChronoUnit.DAYS enum to calculate days between two OffsetDateTime objects in Java.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>ChronoUnit.DAYS</code> enum to calculate the days between two <code>OffsetDateTime</code> instances in Java. It provides the <code>between()</code> method to calculate the amount of time between two temporal objects:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create date instances</span>
<span class="token class-name">OffsetDateTime</span> startOffsetDT <span class="token operator">=</span> <span class="token class-name">OffsetDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-02-23T10:40:30+03:30&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">OffsetDateTime</span> endOffsetDT <span class="token operator">=</span> <span class="token class-name">OffsetDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-11-12T10:40:33-05:00&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Calculate the difference</span>
<span class="token keyword">long</span> days <span class="token operator">=</span> <span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startOffsetDT<span class="token punctuation">,</span> endOffsetDT<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print days</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;Days between &quot;</span> <span class="token operator">+</span> startOffsetDT <span class="token operator">+</span> <span class="token string">&quot; and &quot;</span> <span class="token operator">+</span> endOffsetDT <span class="token operator">+</span> <span class="token string">&quot;: &quot;</span> <span class="token operator">+</span> days<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Days between 2022-02-23T10:40:30+03:30 and 2022-11-12T10:40:33-05:00: 262</span>
</code></pre>
<p>The <a href="https://attacomsian.com/blog/java-new-date-time-api#chrono-units-enum"><code>ChronoUnit</code></a> enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.</p>
<p>The <code>between()</code> method returns a negative difference in days if the start is after the end date, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>endOffsetDT<span class="token punctuation">,</span> startOffsetDT<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// -262</span>
</code></pre>
<p>You can also use the <code>ChronoUnit</code> enum to calculate the difference between two <code>OffsetDateTime</code> objects in weeks, months, and years:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>WEEKS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startOffsetDT<span class="token punctuation">,</span> endOffsetDT<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 37</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>MONTHS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startOffsetDT<span class="token punctuation">,</span> endOffsetDT<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 8</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>YEARS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startOffsetDT<span class="token punctuation">,</span> endOffsetDT<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 0</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-date-difference">this article</a> to learn more about calculating the difference between two dates in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-days-between-two-offsetdatetime-objects.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Calculate days between two ZonedDateTime objects in Java]]></title>
            <link>https://attacomsian.com/blog/java-days-between-two-zoneddatetime-objects</link>
            <guid>tvPh9dYZZD</guid>
            <pubDate>Wed, 16 Nov 2022 18:22:13 GMT</pubDate>
            <description><![CDATA[Learn how to use the ChronoUnit.DAYS enum to calculate days between two ZonedDateTime objects in Java.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>ChronoUnit.DAYS</code> enum to calculate the days between two <code>ZonedDateTime</code> instances in Java. It provides the <code>between()</code> method to calculate the amount of time between two temporal objects:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create date instances</span>
<span class="token class-name">ZonedDateTime</span> startZonedDateTime <span class="token operator">=</span> <span class="token class-name">ZonedDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-03-23T10:40:30+01:00[Europe/Paris]&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">ZonedDateTime</span> endZonedDateTime <span class="token operator">=</span> <span class="token class-name">ZonedDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-11-12T10:40:33+05:00[Asia/Karachi]&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Calculate the difference</span>
<span class="token keyword">long</span> days <span class="token operator">=</span> <span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startZonedDateTime<span class="token punctuation">,</span> endZonedDateTime<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print days</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;Days between &quot;</span> <span class="token operator">+</span> startZonedDateTime <span class="token operator">+</span> <span class="token string">&quot; and &quot;</span> <span class="token operator">+</span> endZonedDateTime <span class="token operator">+</span> <span class="token string">&quot;: &quot;</span> <span class="token operator">+</span> days<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Days between 2022-03-23T10:40:30+01:00[Europe/Paris] </span>
<span class="token comment">// and 2022-11-12T10:40:33+05:00[Asia/Karachi]: 233</span>
</code></pre>
<p>The <a href="https://attacomsian.com/blog/java-new-date-time-api#chrono-units-enum"><code>ChronoUnit</code></a> enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.</p>
<p>The <code>between()</code> method returns a negative difference in days if the start is after the end date, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>endZonedDateTime<span class="token punctuation">,</span> startZonedDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// -233</span>
</code></pre>
<p>You can also use the <code>ChronoUnit</code> enum to calculate the difference between two <code>ZonedDateTime</code> objects in weeks, months, and years:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>WEEKS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startZonedDateTime<span class="token punctuation">,</span> endZonedDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 33</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>MONTHS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startZonedDateTime<span class="token punctuation">,</span> endZonedDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 7</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>YEARS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startZonedDateTime<span class="token punctuation">,</span> endZonedDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 0</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-date-difference">this article</a> to learn more about calculating the difference between two dates in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-days-between-two-zoneddatetime-objects.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Calculate days between two LocalDateTime objects in Java]]></title>
            <link>https://attacomsian.com/blog/java-days-between-two-localdatetime-objects</link>
            <guid>efWbCgzxdJ</guid>
            <pubDate>Wed, 16 Nov 2022 18:14:31 GMT</pubDate>
            <description><![CDATA[Learn how to use the ChronoUnit.DAYS enum to calculate days between two LocalDateTime objects in Java.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>ChronoUnit.DAYS</code> enum to calculate the days between two <code>LocalDateTime</code> instances in Java. It provides the <code>between()</code> method to calculate the amount of time between two temporal objects:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create date instances</span>
<span class="token class-name">LocalDateTime</span> startDateTime <span class="token operator">=</span> <span class="token class-name">LocalDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-02-12T10:40&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">LocalDateTime</span> endDateTime <span class="token operator">=</span> <span class="token class-name">LocalDateTime</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-11-12T10:40&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Calculate the difference</span>
<span class="token keyword">long</span> days <span class="token operator">=</span> <span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDateTime<span class="token punctuation">,</span> endDateTime<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print days</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;Days between &quot;</span> <span class="token operator">+</span> startDateTime <span class="token operator">+</span> <span class="token string">&quot; and &quot;</span> <span class="token operator">+</span> endDateTime <span class="token operator">+</span> <span class="token string">&quot;: &quot;</span> <span class="token operator">+</span> days<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Days between 2022-02-12T10:40 and 2022-11-12T10:40: 273</span>
</code></pre>
<p>The <a href="https://attacomsian.com/blog/java-new-date-time-api#chrono-units-enum"><code>ChronoUnit</code></a> enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.</p>
<p>The <code>between()</code> method returns a negative number as a difference in days if the start is after the end date, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>endDateTime<span class="token punctuation">,</span> startDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// -273</span>
</code></pre>
<p>You can also use the <code>ChronoUnit</code> enum to calculate the difference between two <code>LocalDateTime</code> objects in weeks, months, and years:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>WEEKS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDateTime<span class="token punctuation">,</span> endDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 39</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>MONTHS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDateTime<span class="token punctuation">,</span> endDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 9</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>YEARS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDateTime<span class="token punctuation">,</span> endDateTime<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 0</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-date-difference">this article</a> to learn more about calculating the difference between two dates in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-days-between-two-localdatetime-objects.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Calculate days between two LocalDate objects in Java]]></title>
            <link>https://attacomsian.com/blog/java-days-between-two-localdate-objects</link>
            <guid>lFQvZPtuA6</guid>
            <pubDate>Wed, 16 Nov 2022 18:06:21 GMT</pubDate>
            <description><![CDATA[Learn how to use the ChronoUnit.DAYS enum to calculate days between two LocalDate objects in Java.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>ChronoUnit.DAYS</code> enum to calculate the days between two <code>LocalDate</code> instances in Java. It provides the <code>between()</code> method to calculate the amount of time between two temporal objects:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create date instances</span>
<span class="token class-name">LocalDate</span> startDate <span class="token operator">=</span> <span class="token class-name">LocalDate</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-08-30&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">LocalDate</span> endDate <span class="token operator">=</span> <span class="token class-name">LocalDate</span><span class="token punctuation">.</span><span class="token function">parse</span><span class="token punctuation">(</span><span class="token string">&quot;2022-11-16&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Calculate the difference</span>
<span class="token keyword">long</span> days <span class="token operator">=</span> <span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDate<span class="token punctuation">,</span> endDate<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print days</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;Days between &quot;</span> <span class="token operator">+</span> startDate <span class="token operator">+</span> <span class="token string">&quot; and &quot;</span> <span class="token operator">+</span> endDate <span class="token operator">+</span> <span class="token string">&quot;: &quot;</span> <span class="token operator">+</span> days<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Days between 2022-08-30 and 2022-11-16: 78</span>
</code></pre>
<p>The <a href="https://attacomsian.com/blog/java-new-date-time-api#chrono-units-enum"><code>ChronoUnit</code></a> enum class was introduced in Java 8 to represent individual date and time units such as day, month, year, week, hour, minutes, etc.</p>
<p>The <code>between()</code> method returns the difference in days as a negative number if the start is after the end date, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>DAYS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>endDate<span class="token punctuation">,</span> startDate<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// -78</span>
</code></pre>
<p>You can also use the <code>ChronoUnit</code> enum to calculate the difference between two <code>LocalDate</code> objects in weeks, months, and years:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>WEEKS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDate<span class="token punctuation">,</span> endDate<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 11</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>MONTHS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDate<span class="token punctuation">,</span> endDate<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 2</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">ChronoUnit</span><span class="token punctuation">.</span>YEARS<span class="token punctuation">.</span><span class="token function">between</span><span class="token punctuation">(</span>startDate<span class="token punctuation">,</span> endDate<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 0</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-date-difference">this article</a> to learn more about calculating the difference between two dates in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-days-between-two-localdate-objects.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to check if an enum value exists in Java]]></title>
            <link>https://attacomsian.com/blog/java-check-if-enum-exists</link>
            <guid>eKFuhjAmhT</guid>
            <pubDate>Wed, 09 Nov 2022 20:20:16 GMT</pubDate>
            <description><![CDATA[Learn how to use the valueOf() method to check if an enum contains the given string in Java.]]></description>
            <content:encoded><![CDATA[<p>There are multiple ways to check if an enum contains the given string value in Java. You can use the <code>valueOf()</code> to <a href="https://attacomsian.com/blog/java-string-to-enum">convert the string into an enum</a> value in Java. If the string is a valid enum value, the <code>valueOf()</code> method returns an enum object. Otherwise, it throws an exception.</p>
<p>Let us say we have the following enum representing the days of the week:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Weekday</span> <span class="token punctuation">{</span>
    <span class="token function">MONDAY</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">&quot;Monday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">TUESDAY</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">&quot;Tuesday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">WEDNESDAY</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">&quot;Wednesday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">THURSDAY</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">&quot;Thursday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">FRIDAY</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">&quot;Friday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">SATURDAY</span><span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">,</span> <span class="token string">&quot;Saturday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token function">SUNDAY</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token string">&quot;Sunday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token keyword">int</span> number<span class="token punctuation">;</span>
    <span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token class-name">String</span> value<span class="token punctuation">;</span>

    <span class="token class-name">Weekday</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">,</span> <span class="token class-name">String</span> value<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>number <span class="token operator">=</span> number<span class="token punctuation">;</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>value <span class="token operator">=</span> value<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    
    <span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">getNumber</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> number<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token keyword">public</span> <span class="token class-name">String</span> <span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> value<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="search-an-enum-value-by-name" class="anchor-heading">Search an enum value by name<a class="anchor-link" href="#search-an-enum-value-by-name" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>Since the <code>enum</code> type is a special data type in Java, the name of each enum is constant. For example, the name of <code>Weekday.FRIDAY</code> is <code>FRIDAY</code>.</p>
<p>To search the enum by its name, you can use the <code>valueOf()</code> method, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;FRIDAY&quot;</span><span class="token punctuation">;</span>

<span class="token class-name">Weekday</span> day <span class="token operator">=</span> <span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>str<span class="token punctuation">.</span><span class="token function">toUpperCase</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>day<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
</code></pre>
<p>The <code>valueOf()</code> method works as long as you pass a string that matches an enum name. If the given string does not match an enum name, an <code>IllegalArgumentException</code> is thrown:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Fail due to case mismatch</span>
<span class="token class-name">Weekday</span> monday <span class="token operator">=</span> <span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token string">&quot;Monday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Fail due to invalid value</span>
<span class="token class-name">Weekday</span> invalidStr <span class="token operator">=</span> <span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token string">&quot;Weekend&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>To handle exceptions gracefully, let us add a static function called <code>findByName()</code> to <code>Weekday</code> that searches the enum by name and returns <code>null</code> if not found:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Weekday</span> <span class="token punctuation">{</span>
    <span class="token comment">// ...</span>

    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">Weekday</span> <span class="token function">findByName</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">Weekday</span> day <span class="token operator">:</span> <span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span>day<span class="token punctuation">.</span><span class="token function">name</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">equalsIgnoreCase</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token keyword">return</span> day<span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The <code>findByName()</code> method uses the <code>values()</code> method to <a href="https://attacomsian.com/blog/java-iterate-enum-values">iterate over all enum values</a> and returns an enum object if the given string matches an enum name. Otherwise, it returns <code>null</code> as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByName</span><span class="token punctuation">(</span><span class="token string">&quot;Monday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// MONDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByName</span><span class="token punctuation">(</span><span class="token string">&quot;friday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByName</span><span class="token punctuation">(</span><span class="token string">&quot;Weekday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// null</span>
</code></pre>
<h2 id="search-an-enum-by-value" class="anchor-heading">Search an enum by value<a class="anchor-link" href="#search-an-enum-by-value" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>To search an enum by value, you can use the same <code>valueOf()</code> method you used above. This time, instead of using the <code>name()</code> method, use the <code>getValue()</code> method, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Weekday</span> <span class="token punctuation">{</span>
    <span class="token comment">// ...</span>
    
    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">Weekday</span> <span class="token function">findByValue</span><span class="token punctuation">(</span><span class="token class-name">String</span> value<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">Weekday</span> day <span class="token operator">:</span> <span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span>day<span class="token punctuation">.</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">equalsIgnoreCase</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token keyword">return</span> day<span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The <code>findByValue()</code> method works to <code>findByName()</code> and returns an enum object that matches the enum value. So for <code>Tuesday</code>, you will get <code>Weekday.TUESDAY</code>. If the given value is invalid,  the <code>findByValue()</code> method returns <code>null</code> as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByValue</span><span class="token punctuation">(</span><span class="token string">&quot;Tuesday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// TUESDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByValue</span><span class="token punctuation">(</span><span class="token string">&quot;friday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByValue</span><span class="token punctuation">(</span><span class="token string">&quot;Fri&quot;</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// null</span>
</code></pre>
<h2 id="search-an-enum-by-an-integer-value" class="anchor-heading">Search an enum by an integer value<a class="anchor-link" href="#search-an-enum-by-an-integer-value" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>You can also write a function to search an enum by an integer value. For example, to search a <code>Weekday</code> by the <code>number</code> field, you can use the following code:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Weekday</span> <span class="token punctuation">{</span>
    <span class="token comment">// ...</span>
    
    <span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">Weekday</span> <span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">Weekday</span> day <span class="token operator">:</span> <span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span>day<span class="token punctuation">.</span><span class="token function">getNumber</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
                <span class="token keyword">return</span> day<span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The <code>findByNumber()</code> method compares the given number with the day&apos;s number. If the number matches, it returns the matched object. Otherwise, it returns <code>null</code> as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// WEDNESDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">9</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// null</span>
</code></pre>
<h2 id="search-an-enum-using-java-8-streams" class="anchor-heading">Search an enum using Java 8 Streams<a class="anchor-link" href="#search-an-enum-using-java-8-streams" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>You can also use Java 8 Streams to simplify the enum search. Let us rewrite the above <code>findByNumber()</code> method using streams:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Weekday</span><span class="token punctuation">&gt;</span></span> <span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>weekday <span class="token operator">-&gt;</span> weekday<span class="token punctuation">.</span><span class="token function">getNumber</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> number<span class="token punctuation">)</span>
            <span class="token punctuation">.</span><span class="token function">findFirst</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The above example code looks different from the previous codes because we have used Java 8 streams to implement the search.</p>
<p>Also, instead of returning the enum itself, an <code>Optional</code> value of the <code>Weekday</code> is returned. For the <code>null</code> value, the <code>findByNumber()</code> method returns an empty <code>Optional</code>.</p>
<p>Here is an example that uses the above method to check if the enum exists:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Weekday</span><span class="token punctuation">&gt;</span></span> weekday <span class="token operator">=</span> <span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>weekday<span class="token punctuation">.</span><span class="token function">isPresent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;The number matches &quot;</span> <span class="token operator">+</span> weekday<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">name</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;Number does not match.&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">// The number matches SATURDAY</span>
</code></pre>
<h2 id="throwing-an-exception-if-the-enum-is-not-found" class="anchor-heading">Throwing an exception if the enum is not found<a class="anchor-link" href="#throwing-an-exception-if-the-enum-is-not-found" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>You can also throw an exception instead of returning <code>null</code> or empty <code>Optional</code>. Let us again rewrite the <code>findByNumber()</code> to throw an <code>IllegalArgumentException</code> if the enum is not found:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token class-name">Weekday</span> <span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token keyword">int</span> number<span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">return</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>weekday <span class="token operator">-&gt;</span> weekday<span class="token punctuation">.</span><span class="token function">getNumber</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> number<span class="token punctuation">)</span>
            <span class="token punctuation">.</span><span class="token function">findFirst</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">orElseThrow</span><span class="token punctuation">(</span><span class="token class-name">IllegalArgumentException</span><span class="token operator">::</span><span class="token keyword">new</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The following example uses the above <code>findByNumber()</code> method to search an enum by an integer value:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Weekday</span><span class="token punctuation">.</span><span class="token function">findByNumber</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Exception in thread &quot;main&quot; java.lang.IllegalArgumentException</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-check-if-enum-exists.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to iterate over enum values in Java]]></title>
            <link>https://attacomsian.com/blog/java-iterate-enum-values</link>
            <guid>fk3NEObslS</guid>
            <pubDate>Sat, 05 Nov 2022 20:28:03 GMT</pubDate>
            <description><![CDATA[Learn how to use the values() method to get a list of enum values and iterate over them using loops in Java.]]></description>
            <content:encoded><![CDATA[<p>In Java, the <code>enum</code> type is a special Java class used to assign a predefined set of constants to a variable, such as days in a week, months in a year, etc.</p>
<p>In this article, you will learn about different ways to iterate over enum values in Java. Let us say we have the following enum class:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Days</span> <span class="token punctuation">{</span>
    MONDAY<span class="token punctuation">,</span>
    TUESDAY<span class="token punctuation">,</span>
    WEDNESDAY<span class="token punctuation">,</span>
    THURSDAY<span class="token punctuation">,</span>
    FRIDAY<span class="token punctuation">,</span>
    SATURDAY<span class="token punctuation">,</span>
    SUNDAY
<span class="token punctuation">}</span>
</code></pre>
<h2 id="iterate-over-enum-values-using-the-for-loop" class="anchor-heading">Iterate over enum values using the <code>for</code> loop<a class="anchor-link" href="#iterate-over-enum-values-using-the-for-loop" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>You can use the <code>values()</code> method to retrieve an array containing all the enum values. Once you obtain the array, you can iterate over it using the for loop, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token class-name">Days</span> day <span class="token operator">:</span> <span class="token class-name">Days</span><span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>day<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">// MONDAY</span>
<span class="token comment">// TUESDAY</span>
<span class="token comment">// WEDNESDAY</span>
<span class="token comment">// THURSDAY</span>
<span class="token comment">// FRIDAY</span>
<span class="token comment">// SATURDAY</span>
<span class="token comment">// SUNDAY</span>
</code></pre>
<p>The <code>values()</code> method returns an array containing the constants of the enum type, in the order, they&apos;re declared.</p>
<h2 id="iterate-over-enum-values-using-foreach" class="anchor-heading">Iterate over enum values using <code>forEach()</code><a class="anchor-link" href="#iterate-over-enum-values-using-foreach" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The <code>forEach()</code> method was introduced in Java 8 as part of the <code>Iterable</code> interface. So all the Java collection classes (<code>List</code>, <code>Set</code>, etc.) provides an implementation of the <code>forEach()</code> method.</p>
<p>To use the <code>forEach()</code> method to iterate over enum values, you first need to convert the enum into a list or a set.</p>
<p>Here is how you can use the <code>Arrays.asList()</code> method to convert an enum into a list and then use the <code>forEach()</code> method to iterate over all values:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">asList</span><span class="token punctuation">(</span><span class="token class-name">Days</span><span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// MONDAY</span>
<span class="token comment">// TUESDAY</span>
<span class="token comment">// WEDNESDAY</span>
<span class="token comment">// THURSDAY</span>
<span class="token comment">// FRIDAY</span>
<span class="token comment">// SATURDAY</span>
<span class="token comment">// SUNDAY</span>
</code></pre>
<p>Alternatively, you can use the <code>EnumSet.allOf()</code> method to convert the enum into a set and iterate over its values:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">EnumSet</span><span class="token punctuation">.</span><span class="token function">allOf</span><span class="token punctuation">(</span><span class="token class-name">Days</span><span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<h2 id="iterate-over-enum-values-using-streams" class="anchor-heading">Iterate over enum values using Streams<a class="anchor-link" href="#iterate-over-enum-values-using-streams" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The <code>Stream</code> class can also be used to iterate over enum values, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Stream</span><span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span><span class="token class-name">Days</span><span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// MONDAY</span>
<span class="token comment">// TUESDAY</span>
<span class="token comment">// WEDNESDAY</span>
<span class="token comment">// THURSDAY</span>
<span class="token comment">// FRIDAY</span>
<span class="token comment">// SATURDAY</span>
<span class="token comment">// SUNDAY</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-iterate-enum-values.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to convert a string to an enum value in Java]]></title>
            <link>https://attacomsian.com/blog/java-string-to-enum</link>
            <guid>diOhLn4BLb</guid>
            <pubDate>Sat, 05 Nov 2022 19:38:26 GMT</pubDate>
            <description><![CDATA[Learn how to use the valueOf() method to convert a string to an equivalent enum constant in Java.]]></description>
            <content:encoded><![CDATA[<p>You can use the <code>valueOf()</code> method to convert a string to an enum value in Java. The <code>valueOf()</code> method takes a string as an argument and returns the corresponding enum object.</p>
<p>Let us say we have the following enum class that represents the days of the week:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">enum</span> <span class="token class-name">Day</span> <span class="token punctuation">{</span>
    MONDAY<span class="token punctuation">,</span>
    TUESDAY<span class="token punctuation">,</span>
    WEDNESDAY<span class="token punctuation">,</span>
    THURSDAY<span class="token punctuation">,</span>
    FRIDAY<span class="token punctuation">,</span>
    SATURDAY<span class="token punctuation">,</span>
    SUNDAY<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The following example demonstrates how you can convert a string to a <code>Day</code> object using the <code>valueOf()</code> method:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;FRIDAY&quot;</span><span class="token punctuation">;</span>

<span class="token class-name">Day</span> enumDay <span class="token operator">=</span> <span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>enumDay<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// FRIDAY</span>
</code></pre>
<p>Note that the <code>valueOf()</code> method is case-sensitive. The string value must be an exact match of an enum constant, including the case. Otherwise, an <code>IllegalArgumentException</code> exception is thrown.</p>
<p>The following two examples will fail due to an invalid string or case mismatch:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// &#x274C; Fail due to case mismatch</span>
<span class="token class-name">Day</span> mismatchStr <span class="token operator">=</span> <span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token string">&quot;Monday&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// &#x274C; Fail due to invalid value</span>
<span class="token class-name">Day</span> invalidStr <span class="token operator">=</span> <span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token string">&quot;Weekend&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// &#x2705; Correct value</span>
<span class="token class-name">Day</span> correctStr <span class="token operator">=</span> <span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span><span class="token string">&quot;MONDAY&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>To handle case mismatch, you can transform the given string to uppercase, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;Monday&quot;</span><span class="token punctuation">;</span>

<span class="token comment">// Transform the string to uppercase</span>
<span class="token class-name">Day</span> enumDay <span class="token operator">=</span> <span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>str<span class="token punctuation">.</span><span class="token function">toUpperCase</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>enumDay<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// MONDAY</span>
</code></pre>
<p>Alternatively, you can also use the Streams API to convert a string to an enum value:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;Monday&quot;</span><span class="token punctuation">;</span>

<span class="token class-name">Optional</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Day</span><span class="token punctuation">&gt;</span></span> enumDay <span class="token operator">=</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token class-name">Day</span><span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>d <span class="token operator">-&gt;</span> d<span class="token punctuation">.</span><span class="token function">name</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">equalsIgnoreCase</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">findFirst</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token keyword">if</span> <span class="token punctuation">(</span>enumDay<span class="token punctuation">.</span><span class="token function">isPresent</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;&#x2705; Enum exists: &quot;</span> <span class="token operator">+</span> enumDay<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
    <span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token string">&quot;&#x274C; Enum does not exist!&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>

<span class="token comment">// &#x2705; Enum exists: MONDAY</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-string-to-enum.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to convert a string to a char array in Java]]></title>
            <link>https://attacomsian.com/blog/java-convert-string-to-char-array</link>
            <guid>eutHIPa8yJ</guid>
            <pubDate>Sun, 30 Oct 2022 17:34:17 GMT</pubDate>
            <description><![CDATA[Learn how to use the String. toCharArray() method to convert a string into an array of characters in Java.]]></description>
            <content:encoded><![CDATA[<p>Java provides several ways to convert a string into an array of characters (<code>char[]</code>). You can use the <code>String.toCharArray()</code> or <code>String.chars()</code> method to convert a string into a characters array.</p>
<h2 id="convert-a-string-to-a-char-using-stringtochararray" class="anchor-heading">Convert a string to a <code>char[]</code> using <code>String.toCharArray()</code><a class="anchor-link" href="#convert-a-string-to-a-char-using-stringtochararray" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The <code>String.toCharArray()</code> method returns an array of characters from the given string. The returned character array has the same length as the length of the string.</p>
<p>Here is an example:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Declare a string</span>
<span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;Java Protips&quot;</span><span class="token punctuation">;</span>

<span class="token comment">// Convert string to a char array</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// [J, a, v, a,  , P, r, o, t, i, p, s]</span>
</code></pre>
<h2 id="convert-a-string-to-a-char-using-stringchars" class="anchor-heading">Convert a string to a <code>char[]</code> using <code>String.chars()</code><a class="anchor-link" href="#convert-a-string-to-a-char-using-stringchars" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The <code>String.chars()</code> is yet another simple method to transform a string into an array of characters in Java 8 and higher, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Declare a string</span>
<span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">&quot;Java Protips&quot;</span><span class="token punctuation">;</span>

<span class="token comment">// Convert string to a char array</span>
<span class="token class-name">Character</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">chars</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">mapToObj</span><span class="token punctuation">(</span>c <span class="token operator">-&gt;</span> <span class="token punctuation">(</span><span class="token keyword">char</span><span class="token punctuation">)</span> c<span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">toArray</span><span class="token punctuation">(</span><span class="token class-name">Character</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">::</span><span class="token keyword">new</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// [J, a, v, a,  , P, r, o, t, i, p, s]</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-convert-char-array-to-string">this article</a> if you want to convert a character array to a string in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-convert-string-to-char-array.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to convert a char array to a string in Java]]></title>
            <link>https://attacomsian.com/blog/java-convert-char-array-to-string</link>
            <guid>e2rvFh6165</guid>
            <pubDate>Sun, 30 Oct 2022 17:02:42 GMT</pubDate>
            <description><![CDATA[Learn how to use the string constructor, String.valueOf(), and other methods to convert a character array to a string in Java.]]></description>
            <content:encoded><![CDATA[<p>There are multiple ways to convert a character array (<code>char[]</code>) to a string in Java. You can use the string constructor, the <code>String.valueOf()</code> method and Streams API to convert a sequence of characters to a string object.</p>
<h2 id="convert-char-to-a-string-using-the-string-constructor" class="anchor-heading">Convert <code>char[]</code> to a string using the <code>String</code> constructor<a class="anchor-link" href="#convert-char-to-a-string-using-the-string-constructor" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The easiest way to convert a character array to a string is using the string constructor e.g. <code>new String(char[])</code>.</p>
<p>The <code>String</code> class in Java provides an overloaded constructor that accepts a <code>char</code> array as an argument. Here is an example:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Declare char array</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">&apos;M&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;a&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;n&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;g&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;o&apos;</span><span class="token punctuation">}</span><span class="token punctuation">;</span>

<span class="token comment">// Convert the char array to a string</span>
<span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Mango</span>
</code></pre>
<h2 id="convert-char-to-a-string-using-stringvalueof" class="anchor-heading">Convert <code>char[]</code> to a string using <code>String.valueOf()</code><a class="anchor-link" href="#convert-char-to-a-string-using-stringvalueof" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>The <code>String.valueOf()</code> method is yet another simple way to convert a <code>char[]</code> to a string in Java. It returns the string representation of the passed argument, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Declare char array</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">&apos;M&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;a&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;n&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;g&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;o&apos;</span><span class="token punctuation">}</span><span class="token punctuation">;</span>

<span class="token comment">// Convert the char array to a string</span>
<span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">valueOf</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Mango</span>
</code></pre>
<h2 id="convert-char-to-a-string-using-arraysstream" class="anchor-heading">Convert <code>char[]</code> to a string using <code>Arrays.stream()</code><a class="anchor-link" href="#convert-char-to-a-string-using-arraysstream" aria-hidden="true" title="Anchor Link"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-hash"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></a></h2>
<p>Java 8 provides the <code>Arrays.stream()</code> method to create a stream using an array of characters. Then, you can use the <code>Collectors.joining()</code> method to convert the stream into a string object:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Declare char array</span>
<span class="token class-name">Character</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">&apos;M&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;a&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;n&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;g&apos;</span><span class="token punctuation">,</span> <span class="token string">&apos;o&apos;</span><span class="token punctuation">}</span><span class="token punctuation">;</span>

<span class="token comment">// Convert the char array to a string</span>
<span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token class-name">Arrays</span><span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span>chars<span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token operator">::</span><span class="token function">valueOf</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">joining</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Mango</span>
</code></pre>
<p>Read <a href="https://attacomsian.com/blog/java-convert-string-to-char-array">this article</a> if you want to convert a string into a character array in Java.</p>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-convert-char-array-to-string.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to convert a list to a map in Java]]></title>
            <link>https://attacomsian.com/blog/java-convert-list-to-map</link>
            <guid>epeNzFZJX4</guid>
            <pubDate>Sat, 29 Oct 2022 20:38:43 GMT</pubDate>
            <description><![CDATA[Learn how to use the Collectors.toMap() method from Streams API to convert a list to a map in Java.]]></description>
            <content:encoded><![CDATA[<p>To convert a list of objects to a map in Java, you can use Streams API <code>Collectors.toMap()</code> method. Suppose, we have the following <code>Product.java</code> class that stores product information:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Product</span> <span class="token punctuation">{</span>
    <span class="token keyword">private</span> <span class="token keyword">int</span> id<span class="token punctuation">;</span>
    <span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
    <span class="token keyword">private</span> <span class="token keyword">double</span> price<span class="token punctuation">;</span>

    <span class="token keyword">public</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token keyword">int</span> id<span class="token punctuation">,</span> <span class="token class-name">String</span> name<span class="token punctuation">,</span> <span class="token keyword">double</span> price<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>id <span class="token operator">=</span> id<span class="token punctuation">;</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>price <span class="token operator">=</span> price<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">// getters and setters, equals(), toString() .... (omitted for brevity)</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The following example demonstrates how you can create a list of <code>Product</code> objects and use <code>Collectors.toMap()</code> to convert it into a map:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create a list of products</span>
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Product</span><span class="token punctuation">&gt;</span></span> products <span class="token operator">=</span> <span class="token class-name">List</span><span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">&quot;Milk&quot;</span><span class="token punctuation">,</span> <span class="token number">2.3</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">&quot;Honey&quot;</span><span class="token punctuation">,</span> <span class="token number">9.99</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">&quot;Cookies&quot;</span><span class="token punctuation">,</span> <span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">&quot;Noodles&quot;</span><span class="token punctuation">,</span> <span class="token number">0.99</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Convert list of products to map</span>
<span class="token class-name">Map</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Integer</span><span class="token punctuation">,</span> <span class="token class-name">String</span><span class="token punctuation">&gt;</span></span> map <span class="token operator">=</span> products<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getId</span><span class="token punctuation">,</span> <span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print map elements</span>
<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// {1=Milk, 2=Honey, 3=Cookies, 4=Noodles}</span>
</code></pre>
<p>In the above example, we used the unique <code>id</code> field as the <code>Map</code> key. You can also use the product <code>name</code> field as a key, as shown below:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Map</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">,</span> <span class="token class-name">Double</span><span class="token punctuation">&gt;</span></span> map <span class="token operator">=</span> products<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">,</span> <span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getPrice</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// {Honey=9.99, Cookies=3.5, Milk=2.3, Noodles=0.99}</span>
</code></pre>
<p>If the product list contains duplicate names, an error will be thrown by the <code>Collectors.toMap()</code> method:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">Product</span><span class="token punctuation">&gt;</span></span> products <span class="token operator">=</span> <span class="token class-name">List</span><span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string">&quot;Milk&quot;</span><span class="token punctuation">,</span> <span class="token number">2.3</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">&quot;Honey&quot;</span><span class="token punctuation">,</span> <span class="token number">9.99</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">&quot;Cookies&quot;</span><span class="token punctuation">,</span> <span class="token number">3.5</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">&quot;Noodles&quot;</span><span class="token punctuation">,</span> <span class="token number">0.99</span><span class="token punctuation">)</span><span class="token punctuation">,</span>

        <span class="token comment">// Duplicate Product Name</span>
        <span class="token keyword">new</span> <span class="token class-name">Product</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">,</span> <span class="token string">&quot;Honey&quot;</span><span class="token punctuation">,</span> <span class="token number">7.99</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">Map</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">,</span> <span class="token class-name">Double</span><span class="token punctuation">&gt;</span></span> map <span class="token operator">=</span> products<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">,</span> <span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getPrice</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Exception in thread &quot;main&quot; java.lang.IllegalStateException: </span>
<span class="token comment">// Duplicate key Honey (attempted merging values 9.99 and 7.99)</span>
</code></pre>
<p>To solve the duplicate key issue above, you need to pass the third argument, a merger function, to <code>Collectors.toMap()</code>:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Map</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">,</span> <span class="token class-name">Double</span><span class="token punctuation">&gt;</span></span> map <span class="token operator">=</span> products<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">,</span> <span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getPrice</span><span class="token punctuation">,</span>
                <span class="token punctuation">(</span>oldValue<span class="token punctuation">,</span> newValue<span class="token punctuation">)</span> <span class="token operator">-&gt;</span> oldValue
        <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// {Honey=9.99, Cookies=3.5, Noodles=0.99, Milk=2.3}</span>
</code></pre>
<p>Notice the line,</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token punctuation">(</span>oldValue<span class="token punctuation">,</span> newValue<span class="token punctuation">)</span> <span class="token operator">-&gt;</span> oldValue
</code></pre>
<p>Here, we specified that in case of a duplicate key, choose the old key over the new one.</p>
<p>If you prefer to use the new key value, use the following code:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">Map</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">,</span> <span class="token class-name">Double</span><span class="token punctuation">&gt;</span></span> map <span class="token operator">=</span> products<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toMap</span><span class="token punctuation">(</span><span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">,</span> <span class="token class-name">Product</span><span class="token operator">::</span><span class="token function">getPrice</span><span class="token punctuation">,</span>
                <span class="token punctuation">(</span>oldValue<span class="token punctuation">,</span> newValue<span class="token punctuation">)</span> <span class="token operator">-&gt;</span> newValue
        <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>map<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// {Honey=7.99, Cookies=3.5, Noodles=0.99, Milk=2.3}</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-convert-list-to-map.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[How to convert a list of objects to a list of strings in Java]]></title>
            <link>https://attacomsian.com/blog/java-convert-a-list-of-objects-to-list-of-strings</link>
            <guid>aTPALiToxx</guid>
            <pubDate>Sat, 29 Oct 2022 19:38:28 GMT</pubDate>
            <description><![CDATA[Learn how to use the Streams API methods to convert a list of objects to a list of strings in Java.]]></description>
            <content:encoded><![CDATA[<p>To convert a list of objects to a list of strings in Java, you can use the Streams API <code>map()</code> method. Suppose we have the following <code>User.java</code> class that stores user information.</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">User</span> <span class="token punctuation">{</span>
    <span class="token keyword">private</span> <span class="token class-name">String</span> name<span class="token punctuation">;</span>
    <span class="token keyword">private</span> <span class="token class-name">String</span> profession<span class="token punctuation">;</span>
    <span class="token keyword">private</span> <span class="token keyword">int</span> age<span class="token punctuation">;</span>

    <span class="token keyword">public</span> <span class="token class-name">User</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">,</span> <span class="token class-name">String</span> profession<span class="token punctuation">,</span> <span class="token keyword">int</span> age<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>name <span class="token operator">=</span> name<span class="token punctuation">;</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>profession <span class="token operator">=</span> profession<span class="token punctuation">;</span>
        <span class="token keyword">this</span><span class="token punctuation">.</span>age <span class="token operator">=</span> age<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">// getters and setters, equals(), toString() .... (omitted for brevity)</span>
<span class="token punctuation">}</span>
</code></pre>
<p>The following example demonstrates how you can convert a list of <code>User</code> objects into a list of strings using Java 8 streams:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token comment">// Create a list of users</span>
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">User</span><span class="token punctuation">&gt;</span></span> users <span class="token operator">=</span> <span class="token class-name">List</span><span class="token punctuation">.</span><span class="token function">of</span><span class="token punctuation">(</span>
        <span class="token keyword">new</span> <span class="token class-name">User</span><span class="token punctuation">(</span><span class="token string">&quot;John Doe&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;Engineer&quot;</span><span class="token punctuation">,</span> <span class="token number">23</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">User</span><span class="token punctuation">(</span><span class="token string">&quot;Alex Mike&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;Doctor&quot;</span><span class="token punctuation">,</span> <span class="token number">43</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        <span class="token keyword">new</span> <span class="token class-name">User</span><span class="token punctuation">(</span><span class="token string">&quot;Jovan Lee&quot;</span><span class="token punctuation">,</span> <span class="token string">&quot;Lawyer&quot;</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">)</span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Convert list of users to list of strings</span>
<span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">&gt;</span></span> list <span class="token operator">=</span> users<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token class-name">User</span><span class="token operator">::</span><span class="token function">toString</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// Print list of strings</span>
list<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// User{name=&apos;John Doe&apos;, profession=&apos;Engineer&apos;, age=23}</span>
<span class="token comment">// User{name=&apos;Alex Mike&apos;, profession=&apos;Doctor&apos;, age=43}</span>
<span class="token comment">// User{name=&apos;Jovan Lee&apos;, profession=&apos;Lawyer&apos;, age=34}</span>
</code></pre>
<p>To convert a list of <code>User</code> objects to a list of <code>name</code> values, you can do the following:</p>
<pre rel="java" class="language-java"><code class="language-java"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">&gt;</span></span> list <span class="token operator">=</span> users<span class="token punctuation">.</span><span class="token function">stream</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token class-name">User</span><span class="token operator">::</span><span class="token function">getName</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">collect</span><span class="token punctuation">(</span><span class="token class-name">Collectors</span><span class="token punctuation">.</span><span class="token function">toList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

list<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token operator">::</span><span class="token function">println</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// John Doe</span>
<span class="token comment">// Alex Mike</span>
<span class="token comment">// Jovan Lee</span>
</code></pre>
]]></content:encoded>
            <category domain="https://attacomsian.com/topics/java">Java</category>
            <enclosure url="https://attacomsian.com/social-banner/java-convert-a-list-of-objects-to-list-of-strings.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>