{"@attributes":{"version":"2.0"},"channel":{"title":"Java Performance on \u00d6zkan Pakdil Software Engineer","link":"https:\/\/ozkanpakdil.github.io\/categories\/java-performance\/","description":"Recent content in Java Performance on \u00d6zkan Pakdil Software Engineer","image":{"title":"\u00d6zkan Pakdil Software Engineer","url":"https:\/\/ozkanpakdil.github.io\/images\/papermod-cover.png","link":"https:\/\/ozkanpakdil.github.io\/images\/papermod-cover.png"},"generator":"Hugo -- 0.148.2","language":"en","copyright":"\u00d6zkan Pakdil","lastBuildDate":"Mon, 29 Sep 2025 20:22:00 +0000","item":[{"title":"Java imperative vs functional in 2025 - revisiting a 2015 microbenchmark","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/java-imperative-vs-functional-2025\/","pubDate":"Mon, 29 Sep 2025 20:22:00 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2025\/java-imperative-vs-functional-2025\/","description":"<p>Quick numbers (avg; smaller is faster)<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/ozkanpakdil\/ozkanpakdil.github.io\/blob\/ec3bbcee3a1fcd28c673d4bcca8138b878a4a2be\/scripts\/java25-bench\/Benchmark.java#L119\">I (imperative nested)<\/a>: 3.28 \u00b5s<\/li>\n<li>I2 (imperative freq-map): 1.93 \u00b5s<\/li>\n<li>F (streams grouping): 127.37 \u00b5s<\/li>\n<li>FP (parallel streams grouping): 599.28 \u00b5s<\/li>\n<\/ul>\n<p>Winner: <a href=\"https:\/\/github.com\/ozkanpakdil\/ozkanpakdil.github.io\/blob\/ec3bbcee3a1fcd28c673d4bcca8138b878a4a2be\/scripts\/java25-bench\/Benchmark.java#L130\">I2 - imperative freq-map<\/a><\/p>\n<p>Note: These are sample numbers from the run below on my machine; yours will differ. I\/F labels mirror the 2015 post for a simple visual compare.<\/p>\n<p>== 2015-style harness (I:\/F: lines) ==<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-shell\" data-lang=\"shell\"><span style=\"display:flex;\"><span>ozkan@ozkan-debian:~\/projects\/ozkanpakdil.github.io\/scripts\/compare-2015-25$ .\/run.sh\n<\/span><\/span><span style=\"display:flex;\"><span>javac <span style=\"color:#ae81ff\">25<\/span>\n<\/span><\/span><span style=\"display:flex;\"><span>I:5372\n<\/span><\/span><span style=\"display:flex;\"><span>F:22032373\n<\/span><\/span><span style=\"display:flex;\"><span>I:5816\n<\/span><\/span><span style=\"display:flex;\"><span>F:186352\n<\/span><\/span><span style=\"display:flex;\"><span>F:144816\n<\/span><\/span><span style=\"display:flex;\"><span>F:134903\n<\/span><\/span><span style=\"display:flex;\"><span>F:107685\n<\/span><\/span><span style=\"display:flex;\"><span>I:4919\n<\/span><\/span><span style=\"display:flex;\"><span>I:4903\n<\/span><\/span><span style=\"display:flex;\"><span>I:4698\n<\/span><\/span><span style=\"display:flex;\"><span>I:4147\n<\/span><\/span><span style=\"display:flex;\"><span>F:104857\n<\/span><\/span><\/code><\/pre><\/div><p>== 2025 benchmark summary (fastest \u2192 slowest) ==<\/p>"},{"title":"Java imperative and functional approach performance test 2","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-09-20-java-imperative-performance-test2\/","pubDate":"Sun, 20 Sep 2015 16:03:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-09-20-java-imperative-performance-test2\/","description":"<p>another test for imperative code<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">package<\/span> testarea;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.ArrayList;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.List;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.OptionalDouble;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.stream.Collectors;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.stream.IntStream;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">Test<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">int<\/span><span style=\"color:#f92672\">[]<\/span> array <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> <span style=\"color:#66d9ef\">int<\/span><span style=\"color:#f92672\">[]<\/span> { 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 10 };\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> List<span style=\"color:#f92672\">&lt;<\/span>Double<span style=\"color:#f92672\">&gt;<\/span> NUMBERS_FOR_AVERAGE <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> ArrayList<span style=\"color:#f92672\">&lt;<\/span>Double<span style=\"color:#f92672\">&gt;<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">long<\/span> startTime, stopTime;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tNUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t    NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">add<\/span>(<span style=\"color:#66d9ef\">new<\/span> Double(10));\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();runFunctional();runFunctional();runFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();runImperative();runImperative();runImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">runFunctional<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tfunctionalApproach();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstopTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;F:&#34;<\/span><span style=\"color:#f92672\">+<\/span>(stopTime <span style=\"color:#f92672\">-<\/span> startTime));\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">runImperative<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\timperativeApproach();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstopTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;I:&#34;<\/span><span style=\"color:#f92672\">+<\/span>(stopTime <span style=\"color:#f92672\">-<\/span> startTime));\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">imperativeApproach<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tDouble sum <span style=\"color:#f92672\">=<\/span> 0d;\n<\/span><\/span><span style=\"display:flex;\"><span>\t    <span style=\"color:#66d9ef\">for<\/span> (Double vals : NUMBERS_FOR_AVERAGE) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t        sum <span style=\"color:#f92672\">+=<\/span> vals;\n<\/span><\/span><span style=\"display:flex;\"><span>\t    }\n<\/span><\/span><span style=\"display:flex;\"><span>\t        \n<\/span><\/span><span style=\"display:flex;\"><span>\t    sum <span style=\"color:#f92672\">=<\/span>  sum <span style=\"color:#f92672\">\/<\/span> NUMBERS_FOR_AVERAGE.<span style=\"color:#a6e22e\">size<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">functionalApproach<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tOptionalDouble average <span style=\"color:#f92672\">=<\/span> NUMBERS_FOR_AVERAGE\n<\/span><\/span><span style=\"display:flex;\"><span>\t            .<span style=\"color:#a6e22e\">stream<\/span>()\n<\/span><\/span><span style=\"display:flex;\"><span>\t            .<span style=\"color:#a6e22e\">mapToDouble<\/span>(a <span style=\"color:#f92672\">-&gt;<\/span> a)\n<\/span><\/span><span style=\"display:flex;\"><span>\t            .<span style=\"color:#a6e22e\">average<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>here is my output<\/p>"},{"title":"Java imperative and functional approach performance test","link":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-09-19-java-imperative-vs-functional\/","pubDate":"Sat, 19 Sep 2015 18:30:30 +0000","guid":"https:\/\/ozkanpakdil.github.io\/posts\/my_collections\/2015\/2015-09-19-java-imperative-vs-functional\/","description":"<p>I love performance tests. generally I test everything myself if there is no source in the internet I must do it :)<\/p>\n<p>today I was reading imperative coding vs functional coding <a href=\"http:\/\/www.javacodegeeks.com\/2015\/09\/comparing-imperative-and-functional-algorithms-in-java-8.html\" rel=\"nofollow\">here<\/a>. it stuck my mind this sentence.<\/p>\n<blockquote>they\u2019re probably equally fast and reasonable<\/blockquote>\n<p>then I have to try which one is faster. here is the code<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"><code class=\"language-java\" data-lang=\"java\"><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">package<\/span> testarea;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.stream.Collectors;\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#f92672\">import<\/span> java.util.stream.IntStream;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span><span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">class<\/span> <span style=\"color:#a6e22e\">Test<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">int<\/span><span style=\"color:#f92672\">[]<\/span> array <span style=\"color:#f92672\">=<\/span> <span style=\"color:#66d9ef\">new<\/span> <span style=\"color:#66d9ef\">int<\/span><span style=\"color:#f92672\">[]<\/span> { 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 9, 10 };\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">long<\/span> startTime, stopTime;\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">public<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">main<\/span>(String<span style=\"color:#f92672\">[]<\/span> args) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();runFunctional();runFunctional();runFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunImperative();runImperative();runImperative();runImperative();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\trunFunctional();\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">runFunctional<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tfunctionalApproach();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstopTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;F:&#34;<\/span><span style=\"color:#f92672\">+<\/span>(stopTime <span style=\"color:#f92672\">-<\/span> startTime));\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">runImperative<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstartTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\timperativeApproach();\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tstopTime <span style=\"color:#f92672\">=<\/span> System.<span style=\"color:#a6e22e\">nanoTime<\/span>();\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tSystem.<span style=\"color:#a6e22e\">out<\/span>.<span style=\"color:#a6e22e\">println<\/span>(<span style=\"color:#e6db74\">&#34;I:&#34;<\/span><span style=\"color:#f92672\">+<\/span>(stopTime <span style=\"color:#f92672\">-<\/span> startTime));\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">imperativeApproach<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">int<\/span> sum <span style=\"color:#f92672\">=<\/span> 0;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> j <span style=\"color:#f92672\">=<\/span> 0; j <span style=\"color:#f92672\">&lt;<\/span> array.<span style=\"color:#a6e22e\">length<\/span>; j<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t<span style=\"color:#66d9ef\">for<\/span> (<span style=\"color:#66d9ef\">int<\/span> k <span style=\"color:#f92672\">=<\/span> j <span style=\"color:#f92672\">+<\/span> 1; k <span style=\"color:#f92672\">&lt;<\/span> array.<span style=\"color:#a6e22e\">length<\/span>; k<span style=\"color:#f92672\">++<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t<span style=\"color:#66d9ef\">if<\/span> (k <span style=\"color:#f92672\">!=<\/span> j <span style=\"color:#f92672\">&amp;&amp;<\/span> array<span style=\"color:#f92672\">[<\/span>k<span style=\"color:#f92672\">]<\/span> <span style=\"color:#f92672\">==<\/span> array<span style=\"color:#f92672\">[<\/span>j<span style=\"color:#f92672\">]<\/span>) {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t\tsum <span style=\"color:#f92672\">=<\/span> sum <span style=\"color:#f92672\">+<\/span> array<span style=\"color:#f92672\">[<\/span>k<span style=\"color:#f92672\">]<\/span>;\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>\t<span style=\"color:#66d9ef\">private<\/span> <span style=\"color:#66d9ef\">static<\/span> <span style=\"color:#66d9ef\">void<\/span> <span style=\"color:#a6e22e\">functionalApproach<\/span>() {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\tIntStream.<span style=\"color:#a6e22e\">of<\/span>(array).<span style=\"color:#a6e22e\">boxed<\/span>().<span style=\"color:#a6e22e\">collect<\/span>(Collectors.<span style=\"color:#a6e22e\">groupingBy<\/span>(i <span style=\"color:#f92672\">-&gt;<\/span> i)).<span style=\"color:#a6e22e\">entrySet<\/span>().<span style=\"color:#a6e22e\">stream<\/span>()\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t.<span style=\"color:#a6e22e\">filter<\/span>(e <span style=\"color:#f92672\">-&gt;<\/span> e.<span style=\"color:#a6e22e\">getValue<\/span>().<span style=\"color:#a6e22e\">size<\/span>() <span style=\"color:#f92672\">&gt;<\/span> 1).<span style=\"color:#a6e22e\">forEach<\/span>(e <span style=\"color:#f92672\">-&gt;<\/span> {\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t\t e.<span style=\"color:#a6e22e\">getValue<\/span>().<span style=\"color:#a6e22e\">stream<\/span>().<span style=\"color:#a6e22e\">collect<\/span>(Collectors.<span style=\"color:#a6e22e\">summingInt<\/span>(i <span style=\"color:#f92672\">-&gt;<\/span> i));\n<\/span><\/span><span style=\"display:flex;\"><span>\t\t\t\t});\n<\/span><\/span><span style=\"display:flex;\"><span>\t}\n<\/span><\/span><span style=\"display:flex;\"><span>\n<\/span><\/span><span style=\"display:flex;\"><span>}\n<\/span><\/span><\/code><\/pre><\/div><p>here is my output<\/p>"}]}}