Buscando en una matriz con comparador personalizado en java

¿Por qué siempre devuelve49999 no importa quéstrToSearch retenciones variables? Incluso con la variable de búsqueda clank, devuelve lo mismo. ¿Me he perdido algo:

    String[] arr = new String[100000];
    String strToSearch = "12";
    for (int i = 0; i < arr.length; i++) {
        arr[i] = i+","+i;
    }
    Arrays.sort(arr, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            if(o1 != null && o2 != null && !o1.isEmpty() && !o2.isEmpty() && o1.indexOf(",") != -1 && o2.indexOf(",") != -1) {
                String[] o1Arr = o1.split(",");
                String[] o2Arr = o2.split(",");
                Integer one = Integer.parseInt(o1Arr[0]);
                Integer two = Integer.parseInt(o2Arr[0]);
                return one.compareTo(two);
            }
            return 0;
        }
    });
    System.out.println(Arrays.binarySearch(arr, strToSearch, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            if(o1 != null && o2 != null && !o1.isEmpty() && !o2.isEmpty() && o1.indexOf(",") != -1 && o2.indexOf(",") != -1) {
                String[] o1Arr = o1.split(",");
                String[] o2Arr = o2.split(",");
                return o1Arr[0].compareTo(o2Arr[0]);
            }
            return 0;
        }
    }));

Mi matriz contiene valores separados por comas y quiero buscar en base a una cadena antes de una coma en los elementos de la matriz. ¿Hay alguna otra solución simple disponible? También he creado un método personalizado que recorre la matriz y encuentra la cadena, pero estoy buscando algunas alternativas.

Respuestas a la pregunta(8)

Su respuesta a la pregunta