{"id":10738,"date":"2024-03-14T12:44:35","date_gmt":"2024-03-14T12:44:35","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/"},"modified":"2025-08-04T03:18:55","modified_gmt":"2025-08-04T03:18:55","slug":"what-is-the-method-for-grouping-and-summing-in-java-streams","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/","title":{"rendered":"Java Streams Grouping &#038; Summing Guide"},"content":{"rendered":"<p>In Java, you can use the Collectors.groupingBy method in the Stream API to group data streams, and then combine it with Collectors.summingInt, Collectors.summingLong or Collectors.summingDouble to perform summing operations on the grouped data.<\/p>\n<p>Below is an example code showing how to group a data stream containing multiple objects by a certain property, and then perform a sum operation on each group.<\/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\">class<\/span> <span class=\"hljs-title class_\">Item<\/span> {\r\n    String category;\r\n    <span class=\"hljs-type\">int<\/span> amount;\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">Item<\/span><span class=\"hljs-params\">(String category, <span class=\"hljs-type\">int<\/span> amount)<\/span> {\r\n        <span class=\"hljs-built_in\">this<\/span>.category = category;\r\n        <span class=\"hljs-built_in\">this<\/span>.amount = amount;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title function_\">getCategory<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> category;\r\n    }\r\n\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">getAmount<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-keyword\">return<\/span> amount;\r\n    }\r\n}\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;Item&gt; items = Arrays.asList(\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Item<\/span>(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-number\">10<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Item<\/span>(<span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-number\">20<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Item<\/span>(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-number\">30<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Item<\/span>(<span class=\"hljs-string\">\"B\"<\/span>, <span class=\"hljs-number\">40<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Item<\/span>(<span class=\"hljs-string\">\"A\"<\/span>, <span class=\"hljs-number\">50<\/span>)\r\n        );\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6309\u7167 category \u5206\u7ec4\uff0c\u5e76\u5bf9\u6bcf\u4e2a\u5206\u7ec4\u7684 amount \u6c42\u548c<\/span>\r\n        Map&lt;String, Integer&gt; sumByCategory = items.stream()\r\n                .collect(Collectors.groupingBy(Item::getCategory, Collectors.summingInt(Item::getAmount)));\r\n\r\n        System.out.println(sumByCategory);\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>The code above will output a Map containing the sum of different categories.<\/p>\n<pre class=\"post-pre\"><code>{A=90, B=60}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In Java, you can use the Collectors.groupingBy method in the Stream API to group data streams, and then combine it with Collectors.summingInt, Collectors.summingLong or Collectors.summingDouble to perform summing operations on the grouped data. Below is an example code showing how to group a data stream containing multiple objects by a certain property, and then perform [&hellip;]<\/p>\n","protected":false},"author":6,"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":[9644,13541,180,3738,13542],"class_list":["post-10738","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-collectors","tag-grouping","tag-java-programming","tag-java-streams","tag-summing"],"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 Streams Grouping &amp; Summing Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code 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-method-for-grouping-and-summing-in-java-streams\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Streams Grouping &amp; Summing Guide\" \/>\n<meta property=\"og:description\" content=\"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\" \/>\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-14T12:44:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T03:18:55+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\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=\"Benjamin Taylor\" \/>\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-method-for-grouping-and-summing-in-java-streams\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"Java Streams Grouping &#038; Summing Guide\",\"datePublished\":\"2024-03-14T12:44:35+00:00\",\"dateModified\":\"2025-08-04T03:18:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\"},\"wordCount\":83,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Collectors\",\"Grouping\",\"Java programming\",\"Java streams\",\"Summing\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\",\"name\":\"Java Streams Grouping & Summing Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T12:44:35+00:00\",\"dateModified\":\"2025-08-04T03:18:55+00:00\",\"description\":\"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Streams Grouping &#038; Summing Guide\"}]},{\"@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\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java Streams Grouping & Summing Guide - Blog - Silicon Cloud","description":"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code 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-method-for-grouping-and-summing-in-java-streams\/","og_locale":"en_US","og_type":"article","og_title":"Java Streams Grouping & Summing Guide","og_description":"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T12:44:35+00:00","article_modified_time":"2025-08-04T03:18:55+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"Java Streams Grouping &#038; Summing Guide","datePublished":"2024-03-14T12:44:35+00:00","dateModified":"2025-08-04T03:18:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/"},"wordCount":83,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Collectors","Grouping","Java programming","Java streams","Summing"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/","name":"Java Streams Grouping & Summing Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T12:44:35+00:00","dateModified":"2025-08-04T03:18:55+00:00","description":"Learn to group and sum data in Java Streams using Collectors.groupingBy with summingInt\/Long\/Double methods. Includes code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-grouping-and-summing-in-java-streams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Java Streams Grouping &#038; Summing Guide"}]},{"@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\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10738","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=10738"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10738\/revisions"}],"predecessor-version":[{"id":154507,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10738\/revisions\/154507"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=10738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=10738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=10738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}