{"id":4053,"date":"2024-03-13T07:52:01","date_gmt":"2024-03-13T07:52:01","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/"},"modified":"2025-07-31T01:01:56","modified_gmt":"2025-07-31T01:01:56","slug":"how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/","title":{"rendered":"Binary Search for Duplicates in Java"},"content":{"rendered":"<p>In order to use Java to perform a binary search for elements with the same value in an array, it is essential to ensure that the array is already sorted in either ascending or descending order. Following that, you can implement the binary search by utilizing the following code:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">BinarySearch<\/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        <span class=\"hljs-type\">int<\/span>[] nums = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">6<\/span>};\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">target<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">3<\/span>;\r\n        \r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">left<\/span> <span class=\"hljs-operator\">=<\/span> binarySearchLeft(nums, target);\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">right<\/span> <span class=\"hljs-operator\">=<\/span> binarySearchRight(nums, target);\r\n        \r\n        <span class=\"hljs-keyword\">if<\/span> (left == -<span class=\"hljs-number\">1<\/span> || right == -<span class=\"hljs-number\">1<\/span>) {\r\n            System.out.println(<span class=\"hljs-string\">\"No elements found.\"<\/span>);\r\n        } <span class=\"hljs-keyword\">else<\/span> {\r\n            <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">i<\/span> <span class=\"hljs-operator\">=<\/span> left; i &lt;= right; i++) {\r\n                System.out.println(<span class=\"hljs-string\">\"Element found at index: \"<\/span> + i);\r\n            }\r\n        }\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">binarySearchLeft<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>[] nums, <span class=\"hljs-type\">int<\/span> target)<\/span> {\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">left<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">0<\/span>;\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">right<\/span> <span class=\"hljs-operator\">=<\/span> nums.length - <span class=\"hljs-number\">1<\/span>;\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">index<\/span> <span class=\"hljs-operator\">=<\/span> -<span class=\"hljs-number\">1<\/span>;\r\n        \r\n        <span class=\"hljs-keyword\">while<\/span> (left &lt;= right) {\r\n            <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">mid<\/span> <span class=\"hljs-operator\">=<\/span> left + (right - left) \/ <span class=\"hljs-number\">2<\/span>;\r\n            \r\n            <span class=\"hljs-keyword\">if<\/span> (nums[mid] == target) {\r\n                index = mid;\r\n                right = mid - <span class=\"hljs-number\">1<\/span>;\r\n            } <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (nums[mid] &lt; target) {\r\n                left = mid + <span class=\"hljs-number\">1<\/span>;\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                right = mid - <span class=\"hljs-number\">1<\/span>;\r\n            }\r\n        }\r\n        \r\n        <span class=\"hljs-keyword\">return<\/span> index;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-type\">int<\/span> <span class=\"hljs-title function_\">binarySearchRight<\/span><span class=\"hljs-params\">(<span class=\"hljs-type\">int<\/span>[] nums, <span class=\"hljs-type\">int<\/span> target)<\/span> {\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">left<\/span> <span class=\"hljs-operator\">=<\/span> <span class=\"hljs-number\">0<\/span>;\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">right<\/span> <span class=\"hljs-operator\">=<\/span> nums.length - <span class=\"hljs-number\">1<\/span>;\r\n        <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">index<\/span> <span class=\"hljs-operator\">=<\/span> -<span class=\"hljs-number\">1<\/span>;\r\n        \r\n        <span class=\"hljs-keyword\">while<\/span> (left &lt;= right) {\r\n            <span class=\"hljs-type\">int<\/span> <span class=\"hljs-variable\">mid<\/span> <span class=\"hljs-operator\">=<\/span> left + (right - left) \/ <span class=\"hljs-number\">2<\/span>;\r\n            \r\n            <span class=\"hljs-keyword\">if<\/span> (nums[mid] == target) {\r\n                index = mid;\r\n                left = mid + <span class=\"hljs-number\">1<\/span>;\r\n            } <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-keyword\">if<\/span> (nums[mid] &lt; target) {\r\n                left = mid + <span class=\"hljs-number\">1<\/span>;\r\n            } <span class=\"hljs-keyword\">else<\/span> {\r\n                right = mid - <span class=\"hljs-number\">1<\/span>;\r\n            }\r\n        }\r\n        \r\n        <span class=\"hljs-keyword\">return<\/span> index;\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In this example, we defined two helper functions, binarySearchLeft and binarySearchRight, to find the left and right boundaries of elements in the array that are the same.Then we called these two functions in the main method and printed the indices of all elements that meet the condition.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In order to use Java to perform a binary search for elements with the same value in an array, it is essential to ensure that the array is already sorted in either ascending or descending order. Following that, you can implement the binary search by utilizing the following code: public class BinarySearch { public static [&hellip;]<\/p>\n","protected":false},"author":14,"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":[3202,3198,3201,3199,3200],"class_list":["post-4053","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-array-manipulation","tag-binary-search","tag-java-algorithms","tag-java-duplicates","tag-sorted-array-search"],"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>Binary Search for Duplicates in Java - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.\" \/>\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-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Binary Search for Duplicates in Java\" \/>\n<meta property=\"og:description\" content=\"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\" \/>\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-13T07:52:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T01:01:56+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\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=\"Noah Thompson\" \/>\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-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"Binary Search for Duplicates in Java\",\"datePublished\":\"2024-03-13T07:52:01+00:00\",\"dateModified\":\"2025-07-31T01:01:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\"},\"wordCount\":103,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"array manipulation\",\"binary search\",\"java algorithms\",\"java duplicates\",\"sorted array search\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\",\"name\":\"Binary Search for Duplicates in Java - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-13T07:52:01+00:00\",\"dateModified\":\"2025-07-31T01:01:56+00:00\",\"description\":\"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Binary Search for Duplicates in Java\"}]},{\"@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\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Binary Search for Duplicates in Java - Blog - Silicon Cloud","description":"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.","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-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/","og_locale":"en_US","og_type":"article","og_title":"Binary Search for Duplicates in Java","og_description":"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-13T07:52:01+00:00","article_modified_time":"2025-07-31T01:01:56+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"Binary Search for Duplicates in Java","datePublished":"2024-03-13T07:52:01+00:00","dateModified":"2025-07-31T01:01:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/"},"wordCount":103,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["array manipulation","binary search","java algorithms","java duplicates","sorted array search"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/","name":"Binary Search for Duplicates in Java - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-13T07:52:01+00:00","dateModified":"2025-07-31T01:01:56+00:00","description":"Find duplicate elements in Java arrays using optimized binary search. Learn to locate first\/last occurrences in sorted arrays efficiently.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-binary-search-in-java-to-find-arrays-with-the-same-elements\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Binary Search for Duplicates in Java"}]},{"@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\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4053","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\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=4053"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4053\/revisions"}],"predecessor-version":[{"id":148716,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/4053\/revisions\/148716"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=4053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=4053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=4053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}