code: private static int binarySearchMinStart(
              List<? extends TemporalProposition> params, long timestamp) {
          /*
           * The conditions for using index versus iterator are grabbed from the
           * JDK source code.
           */
          if (params.size() < 5000 || params instanceof RandomAccess) {
              return minStartIndexedBinarySearch(params, timestamp);
          } else {
              return minStartIteratorBinarySearch(params, timestamp);
          }
      }
docs: Binary search for a primitive parameter by timestamp.
  
  @param list
  a <code>List</code> of <code>PrimitiveParameter</code>
  objects all with the same paramId, cannot be <code>null</code>.
  @param tstamp
  the timestamp we're interested in finding.
  @return a <code>PrimitiveParameter</code>, or null if not found.