{"id":8624,"date":"2024-03-14T08:27:25","date_gmt":"2024-03-14T08:27:25","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/"},"modified":"2025-08-03T07:29:28","modified_gmt":"2025-08-03T07:29:28","slug":"what-is-the-usage-of-groupby-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/","title":{"rendered":"Java groupBy Guide: Stream Collectors.groupingBy"},"content":{"rendered":"<p>In Java, the Stream API allows for grouping data. The Collectors.groupingBy() method can be used to achieve functionality similar to the GROUP BY in SQL. By using the groupingBy() method, data can be grouped according to specified conditions, and then operations or aggregations can be applied to each group.<\/p>\n<p>The specific usage is as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.util.Arrays;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.Map;\r\n<span class=\"hljs-keyword\">import<\/span> java.util.stream.Collectors;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Main<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">main<\/span><span class=\"hljs-params\">(String[] args)<\/span> {\r\n        List&lt;String&gt; fruits = Arrays.asList(<span class=\"hljs-string\">\"apple\"<\/span>, <span class=\"hljs-string\">\"banana\"<\/span>, <span class=\"hljs-string\">\"grape\"<\/span>, <span class=\"hljs-string\">\"apple\"<\/span>, <span class=\"hljs-string\">\"orange\"<\/span>, <span class=\"hljs-string\">\"banana\"<\/span>);\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5c06\u6c34\u679c\u6309\u7167\u9996\u5b57\u6bcd\u8fdb\u884c\u5206\u7ec4<\/span>\r\n        Map&lt;Character, List&lt;String&gt;&gt; groupByFirstLetter = fruits.stream()\r\n                .collect(Collectors.groupingBy(s -&gt; s.charAt(<span class=\"hljs-number\">0<\/span>)));\r\n\r\n        System.out.println(groupByFirstLetter);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, we grouped the fruits by their first letters to create a Map object, with keys representing the first letter of the fruits and values representing lists of fruits starting with that letter. After running the code, the following result will be printed:<\/p>\n<pre class=\"post-pre\"><code>{a=[apple, apple], b=[banana, banana], g=[grape], o=[orange]}\r\n<\/code><\/pre>\n<p>This achieves the functionality of grouping fruits by their first letter. The groupingBy() method can also be combined with methods like Collectors.counting() and Collectors.summingInt() for further operations to achieve more complex grouping and statistical functions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, the Stream API allows for grouping data. The Collectors.groupingBy() method can be used to achieve functionality similar to the GROUP BY in SQL. By using the groupingBy() method, data can be grouped according to specified conditions, and then operations or aggregations can be applied to each group. The specific usage is as follows: [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[9252,4316,578,11718,11719],"class_list":["post-8624","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-collectors-groupingby","tag-data-grouping","tag-java-collections","tag-java-groupby","tag-java-stream-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java groupBy Guide: Stream Collectors.groupingBy - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java groupBy Guide: Stream Collectors.groupingBy\" \/>\n<meta property=\"og:description\" content=\"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T08:27:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-03T07:29:28+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"Java groupBy Guide: Stream Collectors.groupingBy\",\"datePublished\":\"2024-03-14T08:27:25+00:00\",\"dateModified\":\"2025-08-03T07:29:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\"},\"wordCount\":145,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Collectors.groupingBy\",\"Data grouping\",\"java collections\",\"Java groupBy\",\"Java Stream API\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\",\"name\":\"Java groupBy Guide: Stream Collectors.groupingBy - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T08:27:25+00:00\",\"dateModified\":\"2025-08-03T07:29:28+00:00\",\"description\":\"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java groupBy Guide: Stream Collectors.groupingBy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java groupBy Guide: Stream Collectors.groupingBy - Blog - Silicon Cloud","description":"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Java groupBy Guide: Stream Collectors.groupingBy","og_description":"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T08:27:25+00:00","article_modified_time":"2025-08-03T07:29:28+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"Java groupBy Guide: Stream Collectors.groupingBy","datePublished":"2024-03-14T08:27:25+00:00","dateModified":"2025-08-03T07:29:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/"},"wordCount":145,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Collectors.groupingBy","Data grouping","java collections","Java groupBy","Java Stream API"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/","name":"Java groupBy Guide: Stream Collectors.groupingBy - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T08:27:25+00:00","dateModified":"2025-08-03T07:29:28+00:00","description":"Master Java groupBy with Collectors.groupingBy. Group data in streams like SQL GROUP BY with examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-usage-of-groupby-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Java groupBy Guide: Stream Collectors.groupingBy"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=8624"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8624\/revisions"}],"predecessor-version":[{"id":153445,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8624\/revisions\/153445"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=8624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=8624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=8624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}