為了方便使用陣列常常會直接在array.xml中宣告2個互相對應的陣列 e.g.,

  <string-array name="type">
    <item>0</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
  </string-array>
  <string-array name="code">
    <item>A</item>
    <item>C</item>
    <item>B</item>
    <item>E</item>
    <item>F</item>
    <item>G</item>
    <item>D</item>
  </string-array>

若直接在code中使用Arrays.binsearch 會出現 index 錯誤 e.g.,

        String[] targetArray = getResources().getStringArray(R.array.type);
        int index = Arrays.binarySearch(targetArray, 3);
        String[] codeArray = getResources().getStringArray(R.array.code);

原因是因為Arrays.binarySearch只能使用在已經排序(自然排序)過的陣列。
若該陣列還未排序會丟出Exception,說明index有問題。
比較快的解決方式就是自己寫取得對應的元素 e.g.,

    private int findSpecifyIndexInArray(String[] targetArray, String specify){
        for (int i = 0; i < targetArray.length; ++i) {
            if (targetArray[i].equals(specify)) {
                return i;
            }
        }
        return -1;
    }
    String[] targetArray = getResources().getStringArray(R.array.type);
    int index = findSpecifyIndexInArray(targetArray, 3);
    String[] codeArray = getResources().getStringArray(R.array.code);