public IteratorSTL<T> lower_bound(T key, Comparator<T> comparator) {
		int i = Collections.binarySearch(data, key, comparator);
		// binary search does not guarantee it will find the first of a sequence of equal keys,
		// so look for the first.  if i < 0 we don't have any exact matches so this loop won't execute
		for (; i > 0; i--) {
			if (!data.get(i - 1).equals(key)) {
				break;
			}
		}
		// at this point if i >= 0, i is pointing to the lower bound
		// if it is negative, the lower bound = -i-1;

		if (i < 0) {
			i = -i - 1;
		}
		return new VectorIterator<>(data, i);

	}
Returns an iterator postioned at the item in the vector that is the smallest key less or equal than
the given key.  This method assumes the vector is sorted in ascending order.
@param key the key for which to find the lower bound
@return an iterator postioned at the item in the vector that is the smallest key less or equal than
the given key. 
@throws UnsupportedOperationException if T is not comparable
Ghidra/Framework/Generic/src/main/java/generic/stl/VectorSTL.java