code: static <T> int binarySearch(final T[] a, final T key, final Comparator<? super T> cmp) {
          if (N.isNullOrEmpty(a)) {
              return N.INDEX_NOT_FOUND;
          }
  
          return Arrays.binarySearch(a, key, cmp == null ? Comparators.NATURAL_ORDER : cmp);
      }
docs: {@link Arrays#binarySearch(Object[], Object, Comparator)}
  
  @param a
  @param key
  @param cmp
  @return