{"id":3354,"date":"2019-05-01T18:07:07","date_gmt":"2019-05-01T18:07:07","guid":{"rendered":"http:\/\/codethataint.com\/blog\/?p=3354"},"modified":"2024-07-30T16:03:57","modified_gmt":"2024-07-30T16:03:57","slug":"stream-codes","status":"publish","type":"post","link":"https:\/\/codethataint.com\/blog\/stream-codes\/","title":{"rendered":"Stream Codes Examples"},"content":{"rendered":"<p><strong>How to Search for Product with least cost from List? I have a List of Speakers in List. I want to get the speaker with the least cost.<\/strong><\/p>\n<p><strong>Speakers.java<\/strong><\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npackage com.mugil.bean;\r\n\r\npublic class Speakers {\r\n private Integer speakerID;\r\n private String companyName;\r\n private Integer price;\r\n private String sellerName;\r\n\r\n public Speakers(Integer pSpeakerId, String pcompanyName, Integer pPrice, String psellerName) {\r\n  this.speakerID = pSpeakerId;\r\n  this.companyName = pcompanyName;\r\n  this.price = pPrice;\r\n  this.sellerName = psellerName;\r\n }\r\n\r\n public int getSpeakerID() {\r\n  return speakerID;\r\n }\r\n public void setSpeakerID(int speakerID) {\r\n  this.speakerID = speakerID;\r\n }\r\n public String getCompanyName() {\r\n  return companyName;\r\n }\r\n public void setCompanyName(String companyName) {\r\n  this.companyName = companyName;\r\n }\r\n public int getPrice() {\r\n  return price;\r\n }\r\n public void setPrice(int price) {\r\n  this.price = price;\r\n }\r\n\r\n public String getSellerName() {\r\n  return sellerName;\r\n }\r\n\r\n public void setSellerName(String sellerName) {\r\n  this.sellerName = sellerName;\r\n }\r\n\r\n @Override\r\n public String toString() {\r\n  return &quot;Speakers &#x5B;speakerID=&quot; + speakerID + &quot;, companyName=&quot; + companyName + &quot;, price=&quot; + price +\r\n   &quot;, sellerName=&quot; + sellerName + &quot;]&quot;;\r\n }\r\n}\r\n<\/pre>\n<p><strong>SearchSpeakers.java<\/strong><\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npackage com.mugil.test;\r\n\r\nimport java.util.ArrayList;\r\nimport java.util.Comparator;\r\nimport java.util.List;\r\nimport java.util.stream.Collector;\r\nimport java.util.stream.Collectors;\r\n\r\nimport com.mugil.bean.Speakers;\r\n\r\npublic class SearchSpeakers {\r\n\r\n public static void main(String&#x5B;] args) {\r\n  Speakers objSpeaker1 = new Speakers(101, &quot;JBL Go&quot;, 120, &quot;Amazon&quot;);\r\n  Speakers objSpeaker2 = new Speakers(102, &quot;Panasonic&quot;, 420, &quot;Amazon&quot;);\r\n  Speakers objSpeaker3 = new Speakers(103, &quot;JBL Go&quot;, 900, &quot;Flipkart&quot;);\r\n  Speakers objSpeaker4 = new Speakers(104, &quot;JBL Go&quot;, 120, &quot;Amazon&quot;);\r\n  Speakers objSpeaker5 = new Speakers(105, &quot;JBL Go&quot;, 350, &quot;Amazon&quot;);\r\n  Speakers objSpeaker6 = new Speakers(101, &quot;Philips&quot;, 120, &quot;EBay&quot;);\r\n  Speakers objSpeaker7 = new Speakers(102, &quot;JBL Go&quot;, 125, &quot;Ebay&quot;);\r\n  Speakers objSpeaker8 = new Speakers(103, &quot;JBL Go&quot;, 35, &quot;Smart Shoppe&quot;);\r\n  Speakers objSpeaker9 = new Speakers(104, &quot;Panasonic&quot;, 80, &quot;Amazon&quot;);\r\n  Speakers objSpeaker10 = new Speakers(105, &quot;Philips&quot;, 180, &quot;Amazon&quot;);\r\n\r\n  List &lt; Speakers &gt; arrSpeakers = new ArrayList &lt; Speakers &gt; ();\r\n\r\n  arrSpeakers.add(objSpeaker1);\r\n  arrSpeakers.add(objSpeaker2);\r\n  arrSpeakers.add(objSpeaker3);\r\n  arrSpeakers.add(objSpeaker4);\r\n  arrSpeakers.add(objSpeaker5);\r\n  arrSpeakers.add(objSpeaker6);\r\n  arrSpeakers.add(objSpeaker7);\r\n  arrSpeakers.add(objSpeaker8);\r\n  arrSpeakers.add(objSpeaker9);\r\n  arrSpeakers.add(objSpeaker10);\r\n\r\n  Comparator &lt; Speakers &gt; spkComparator = (Speakers objSpeaker1a, Speakers objSpeaker2a) -&gt; objSpeaker1a.getPrice() - objSpeaker2a.getPrice();\r\n\r\n  arrSpeakers.stream().sorted(spkComparator).collect(Collectors.groupingBy(Speakers::getCompanyName)).values()\r\n   .stream().forEach(searchedModel -&gt; System.out\r\n    .println(&quot;Speaker with Lowest Cost&quot; + searchedModel.stream().findFirst()));\r\n }\r\n}\r\n<\/pre>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\narrSpeakers.stream().sorted(spkComparator).collect(Collectors.groupingBy(Speakers::getCompanyName)).values()\r\n   .stream().forEach(searchedModel -&gt; System.out\r\n    .println(&quot;Speaker with Lowest Cost&quot; + searchedModel.stream().findFirst()));\r\n<\/pre>\n<p><em>arrSpeakers.stream() <\/em>&#8211; Convert to Stream<br \/>\n<em>arrSpeakers.stream().sorted(spkComparator)<\/em> &#8211; Sorts the list by price<br \/>\n<em>arrSpeakers.stream().sorted(spkComparator).collect(Collectors.groupingBy(Speakers::getCompanyName)) <\/em>&#8211; Groups the Sorted List by Company Name<br \/>\n<em>arrSpeakers.stream().sorted(spkComparator).collect(Collectors.groupingBy(Speakers::getCompanyName)).values()<br \/>\n   .stream()<\/em> &#8211; Convert the Sorted List into Stream<\/p>\n<p>The above code could be rewritten as follows<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/\/Sort by Price and group by company name\r\nStream objStream = arrSpeakers.stream()\r\n                              .sorted(spkComparator)\r\n                              .collect(Collectors.groupingBy(Speakers::getCompanyName)).values();\r\n\r\n\/\/Loop through Stream of List and print the first one\r\nobjStream.forEach(listOfStudent -&gt; System.out.println((ArrayList)listOfStudent.stream().findFirst()));\r\n<\/pre>\n<p><strong>Output<\/strong><\/p>\n<pre>\r\nSpeaker with Lowest CostOptional[Speakers [speakerID=101, companyName=Philips, price=120, sellerName=EBay]]\r\nSpeaker with Lowest CostOptional[Speakers [speakerID=104, companyName=Panasonic, price=80, sellerName=Amazon]]\r\nSpeaker with Lowest CostOptional[Speakers [speakerID=103, companyName=JBL Go, price=35, sellerName=Smart Shoppe]]\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>How to Search for Product with least cost from List? I have a List of Speakers in List. I want to get the speaker with the least cost. Speakers.java package com.mugil.bean; public class Speakers { private Integer speakerID; private String companyName; private Integer price; private String sellerName; public Speakers(Integer pSpeakerId, String pcompanyName, Integer pPrice, String&hellip; <a href=\"https:\/\/codethataint.com\/blog\/stream-codes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[277,251],"tags":[],"class_list":["post-3354","post","type-post","status-publish","format-standard","hentry","category-codes","category-streams"],"_links":{"self":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/3354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/comments?post=3354"}],"version-history":[{"count":3,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/3354\/revisions"}],"predecessor-version":[{"id":5056,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/posts\/3354\/revisions\/5056"}],"wp:attachment":[{"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/media?parent=3354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/categories?post=3354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codethataint.com\/blog\/wp-json\/wp\/v2\/tags?post=3354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}