code: public static <IV, K, V> IV injectIntoIf(
              IV initialValue,
              Map<K, V> map,
              final Predicate<? super V> predicate,
              final Function2<? super IV, ? super V, ? extends IV> function)
      {
          Function2<IV, ? super V, IV> ifFunction = new Function2<IV, V, IV>()
          {
              public IV value(IV accumulator, V item)
              {
                  if (predicate.accept(item))
                  {
                      return function.value(accumulator, item);
                  }
                  return accumulator;
              }
          };
          return Iterate.injectInto(initialValue, map.values(), ifFunction);
      }
docs: Same as {@link #injectInto(Object, Map, Function2)}, but only applies the value to the function
  if the predicate returns true for the value.
  
  @see #injectInto(Object, Map, Function2)