title: Java Arrays binarySearch() insertion point
body: <p>As per Java doc for Arrays.binarySearch(int[] a, int key)</p>
  <blockquote>
  <p>Returns:</p>
  <p>index of the search key, if it is contained in the array;
  otherwise, (-(insertion point) - 1). The insertion point is defined as
  the point at which the key would be inserted into the array: the index
  of the first element greater than the key, or a.length if all elements
  in the array are less than the specified key. Note that this
  guarantees that the return value will be &gt;= 0 if and only if the key
  is found.</p>
  </blockquote>
  <p>I need to understand why its returning <code>(-(insertion point) - 1)</code>, why not just <code>-(insertion point)</code>?</p>