{"id":6836,"date":"2024-03-14T04:43:51","date_gmt":"2024-03-14T04:43:51","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/"},"modified":"2025-08-02T08:46:33","modified_gmt":"2025-08-02T08:46:33","slug":"how-to-implement-multi-condition-sorting-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/","title":{"rendered":"Java Multi-Condition Sorting Guide"},"content":{"rendered":"<p>In Java, the use of the Comparator interface allows for the implementation of multi-level sorting. The compare method in the Comparator interface allows for the specification of multiple comparison conditions, which can then be utilized for sorting with multiple criteria.<\/p>\n<p>Here is an example code demonstrating how to implement multi-condition sorting.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">import<\/span> java.util.Comparator;\r\n\r\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MultiConditionSort<\/span> {\r\n\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        <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u4e00\u4e2aPerson\u7c7b<\/span>\r\n        <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Person<\/span> {\r\n            String name;\r\n            <span class=\"hljs-type\">int<\/span> age;\r\n\r\n            <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-title function_\">Person<\/span><span class=\"hljs-params\">(String name, <span class=\"hljs-type\">int<\/span> age)<\/span> {\r\n                <span class=\"hljs-built_in\">this<\/span>.name = name;\r\n                <span class=\"hljs-built_in\">this<\/span>.age = age;\r\n            }\r\n\r\n            <span class=\"hljs-meta\">@Override<\/span>\r\n            <span class=\"hljs-keyword\">public<\/span> String <span class=\"hljs-title function_\">toString<\/span><span class=\"hljs-params\">()<\/span> {\r\n                <span class=\"hljs-keyword\">return<\/span> name + <span class=\"hljs-string\">\" - \"<\/span> + age;\r\n            }\r\n        }\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u521b\u5efa\u4e00\u4e2aPerson\u5bf9\u8c61\u6570\u7ec4<\/span>\r\n        Person[] people = {\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"Alice\"<\/span>, <span class=\"hljs-number\">30<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"Bob\"<\/span>, <span class=\"hljs-number\">25<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"Charlie\"<\/span>, <span class=\"hljs-number\">35<\/span>),\r\n                <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Person<\/span>(<span class=\"hljs-string\">\"David\"<\/span>, <span class=\"hljs-number\">20<\/span>)\r\n        };\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u5b9a\u4e49\u4e00\u4e2aComparator\uff0c\u5b9e\u73b0\u591a\u6761\u4ef6\u6392\u5e8f<\/span>\r\n        Comparator&lt;Person&gt; comparator = Comparator\r\n                .comparing((Person p) -&gt; p.age) <span class=\"hljs-comment\">\/\/ \u6309\u5e74\u9f84\u5347\u5e8f\u6392\u5e8f<\/span>\r\n                .thenComparing(p -&gt; p.name);     <span class=\"hljs-comment\">\/\/ \u5e74\u9f84\u76f8\u540c\u65f6\uff0c\u6309\u59d3\u540d\u5347\u5e8f\u6392\u5e8f<\/span>\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u4f7f\u7528Comparator\u8fdb\u884c\u6392\u5e8f<\/span>\r\n        Arrays.sort(people, comparator);\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u6253\u5370\u6392\u5e8f\u7ed3\u679c<\/span>\r\n        <span class=\"hljs-keyword\">for<\/span> (Person person : people) {\r\n            System.out.println(person);\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, we defined a Person class with two attributes: name and age. We then created an array of Person objects and defined a Comparator to sort by multiple conditions &#8211; first by age in ascending order, and then by name in ascending order if the ages are the same. Finally, we used the Arrays.sort method to sort the Person array and printed the results.<\/p>\n<p>In this way, we can easily achieve multi-condition sorting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, the use of the Comparator interface allows for the implementation of multi-level sorting. The compare method in the Comparator interface allows for the specification of multiple comparison conditions, which can then be utilized for sorting with multiple criteria. Here is an example code demonstrating how to implement multi-condition sorting. import java.util.Comparator; public class [&hellip;]<\/p>\n","protected":false},"author":11,"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":[3570,87,8511,299,3568],"class_list":["post-6836","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-comparator","tag-java","tag-multi-condition","tag-programming","tag-sorting"],"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 Multi-Condition Sorting Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with 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\/how-to-implement-multi-condition-sorting-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Multi-Condition Sorting Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-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-14T04:43:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T08:46:33+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\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=\"Olivia Parker\" \/>\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\/how-to-implement-multi-condition-sorting-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"Java Multi-Condition Sorting Guide\",\"datePublished\":\"2024-03-14T04:43:51+00:00\",\"dateModified\":\"2025-08-02T08:46:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/\"},\"wordCount\":132,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"comparator\",\"Java\",\"multi-condition\",\"programming\",\"sorting\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/\",\"name\":\"Java Multi-Condition Sorting Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T04:43:51+00:00\",\"dateModified\":\"2025-08-02T08:46:33+00:00\",\"description\":\"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Multi-Condition Sorting 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java Multi-Condition Sorting Guide - Blog - Silicon Cloud","description":"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with 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\/how-to-implement-multi-condition-sorting-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Java Multi-Condition Sorting Guide","og_description":"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T04:43:51+00:00","article_modified_time":"2025-08-02T08:46:33+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"Java Multi-Condition Sorting Guide","datePublished":"2024-03-14T04:43:51+00:00","dateModified":"2025-08-02T08:46:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/"},"wordCount":132,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["comparator","Java","multi-condition","programming","sorting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/","name":"Java Multi-Condition Sorting Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T04:43:51+00:00","dateModified":"2025-08-02T08:46:33+00:00","description":"Learn how to implement multi-condition sorting in Java using Comparator interface. Step-by-step guide with code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-implement-multi-condition-sorting-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Java Multi-Condition Sorting 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\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/6836","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\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=6836"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/6836\/revisions"}],"predecessor-version":[{"id":151606,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/6836\/revisions\/151606"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=6836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=6836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=6836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}