java數組中根據元素尋找位置__java

來源:互聯網
上載者:User

今天遇到一個問題,是根據數組中的某一個元素尋找其在數組中的位置。我們知道,二分法或快速尋找法肯定能解決問題,但是我又不想多寫幾行代碼(好懶),所以就想知道有沒有封裝好的方法能解決這個問題。

通過尋找資料瞭解到,Arrays提供了一個方便查詢的方法 :Arrays.binarySearch();

 String[] arrays = new String[]{"a","b","c","d","e","f","g","h","i","j",};            int positon = Arrays.binarySearch(arrays, "f");  
        System.out.println("position is:"+positon); 
測試結果:

[java]  view plain copy position is:5  
其實這個方法也是用的二分法實現的:
[java]  view plain copy public static int binarySearch(char[] array, int startIndex, int endIndex, char value) {           checkBinarySearchBounds(startIndex, endIndex, array.length);            int lo = startIndex;           int hi = endIndex - 1;              while (lo <= hi) {               int mid = (lo + hi) >>> 1;//無符號右移               char midVal = array[mid];                  if (midVal < value) {                   lo = mid + 1;               } else if (midVal > value) {                   hi = mid - 1;               } else {                   return mid;  // value found               }           }           return ~lo;  // value not present       }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.