{"id":8025,"date":"2024-03-14T07:27:20","date_gmt":"2024-03-14T07:27:20","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/"},"modified":"2025-08-02T23:43:04","modified_gmt":"2025-08-02T23:43:04","slug":"how-can-you-sort-a-list-with-multiple-fields-in-java","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/","title":{"rendered":"Java Sort List by Multiple Fields"},"content":{"rendered":"<p>In Java, multiple fields in a List can be sorted by implementing the Comparator interface. The compare method in the Comparator interface can compare and sort the values of multiple fields.<\/p>\n<p>For example, suppose there is an object Person with multiple fields, a custom comparator class implementing the Comparator interface can be created to sort Person objects.<\/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_\">PersonComparator<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title class_\">Comparator<\/span>&lt;Person&gt; {\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">compare<\/span><span class=\"hljs-params\">(Person p1, Person p2)<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u5148\u6309\u7167age\u5b57\u6bb5\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f<\/span>\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">result<\/span> <span class=\"hljs-operator\">=<\/span> Integer.compare(p1.getAge(), p2.getAge());\r\n        <span class=\"hljs-keyword\">if<\/span> (result == <span class=\"hljs-number\">0<\/span>) {\r\n            <span class=\"hljs-comment\">\/\/ \u5982\u679cage\u5b57\u6bb5\u76f8\u7b49\uff0c\u5219\u6309\u7167name\u5b57\u6bb5\u8fdb\u884c\u5347\u5e8f\u6392\u5e8f<\/span>\r\n            result = p1.getName().compareTo(p2.getName());\r\n        }\r\n        <span class=\"hljs-keyword\">return<\/span> result;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Next, you can use the sort method of the Collections utility class to sort the List and pass in a custom comparator class.<\/p>\n<pre class=\"post-pre\"><code>List&lt;Person&gt; personList = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">ArrayList<\/span>&lt;&gt;();\r\n<span class=\"hljs-comment\">\/\/ \u6dfb\u52a0Person\u5bf9\u8c61\u5230personList\u4e2d<\/span>\r\n\r\nCollections.sort(personList, <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">PersonComparator<\/span>());\r\n<\/code><\/pre>\n<p>This allows for sorting of Person objects in a List in ascending order based on the age field, and if the age field is the same, then sorting is done in ascending order based on the name field. You can modify the compare method in a custom comparator class to implement different multi-field sorting logic as needed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Java, multiple fields in a List can be sorted by implementing the Comparator interface. The compare method in the Comparator interface can compare and sort the values of multiple fields. For example, suppose there is an object Person with multiple fields, a custom comparator class implementing the Comparator interface can be created to sort [&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":[3570,10550,578,1889,10549],"class_list":["post-8025","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-comparator","tag-custom-sorting","tag-java-collections","tag-java-sorting","tag-multi-field-sort"],"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 Sort List by Multiple Fields - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn to sort Java lists with multiple fields using Comparator interface. Complete 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-can-you-sort-a-list-with-multiple-fields-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Sort List by Multiple Fields\" \/>\n<meta property=\"og:description\" content=\"Learn to sort Java lists with multiple fields using Comparator interface. Complete guide with code examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-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-14T07:27:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T23:43:04+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\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"Java Sort List by Multiple Fields\",\"datePublished\":\"2024-03-14T07:27:20+00:00\",\"dateModified\":\"2025-08-02T23:43:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/\"},\"wordCount\":143,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"comparator\",\"custom sorting\",\"java collections\",\"Java Sorting\",\"multi-field sort\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/\",\"name\":\"Java Sort List by Multiple Fields - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T07:27:20+00:00\",\"dateModified\":\"2025-08-02T23:43:04+00:00\",\"description\":\"Learn to sort Java lists with multiple fields using Comparator interface. Complete guide with code examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Sort List by Multiple Fields\"}]},{\"@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 Sort List by Multiple Fields - Blog - Silicon Cloud","description":"Learn to sort Java lists with multiple fields using Comparator interface. Complete 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-can-you-sort-a-list-with-multiple-fields-in-java\/","og_locale":"en_US","og_type":"article","og_title":"Java Sort List by Multiple Fields","og_description":"Learn to sort Java lists with multiple fields using Comparator interface. Complete guide with code examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T07:27:20+00:00","article_modified_time":"2025-08-02T23:43:04+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\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"Java Sort List by Multiple Fields","datePublished":"2024-03-14T07:27:20+00:00","dateModified":"2025-08-02T23:43:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/"},"wordCount":143,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["comparator","custom sorting","java collections","Java Sorting","multi-field sort"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/","url":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/","name":"Java Sort List by Multiple Fields - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T07:27:20+00:00","dateModified":"2025-08-02T23:43:04+00:00","description":"Learn to sort Java lists with multiple fields using Comparator interface. Complete guide with code examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-can-you-sort-a-list-with-multiple-fields-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Java Sort List by Multiple Fields"}]},{"@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\/8025","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=8025"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8025\/revisions"}],"predecessor-version":[{"id":152822,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8025\/revisions\/152822"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=8025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=8025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=8025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}