code: public Entry<K,V> get(K key, BiPredicate<K,V> predicate)
      {
          BinarySet<Entry<K,V>> es = (BinarySet<Entry<K,V>>) entrySet;
          Entry<K, V> entry = entry((K) key, null);
          return es.get(entry, (e)->predicate.test(e.getKey(), e.getValue()));
      }
docs: If an entry is found in binary-search, the predicate is tested and either
  entry or null is result.
  <p>
  Otherwise entry before insertion-point is tested and if passed
  returned.
  <p>
  Otherwise entry at insert-point is tested and if passed returned.
  <p>
  If there is no entry at insert-point or preceding it returns null.
  @param key
  @param predicate
  @return