public static <T, IV, P> IV injectIntoWith(
            IV injectedValue,
            ArrayList<T> list,
            Function3<? super IV, ? super T, ? super P, ? extends IV> function,
            P parameter)
    {
        int size = list.size();
        if (ArrayListIterate.isOptimizableArrayList(list, size))
        {
            IV result = injectedValue;
            T[] elements = ArrayListIterate.getInternalArray(list);
            for (int i = 0; i < size; i++)
            {
                result = function.value(result, elements[i], parameter);
            }
            return result;
        }
        return RandomAccessListIterate.injectIntoWith(injectedValue, list, function, parameter);
    }
public static < T , IV , P > IV injectIntoWith ( IV injectedValue , ArrayList < T > list , Function3 < ? super IV , ? super T , ? super P , ? extends IV > function , P parameter ) { int size = list . size ( ) ; if ( ArrayListIterate . isOptimizableArrayList ( list , size ) ) { IV result = injectedValue ; T [ ] elements = ArrayListIterate . getInternalArray ( list ) ; for ( int i = 0 ; i < size ; i ++ ) { result = function . value ( result , elements [ i ] , parameter ) ; } return result ; } return RandomAccessListIterate . injectIntoWith ( injectedValue , list , function , parameter ) ; }
@see Iterate#injectIntoWith(Object, Iterable, Function3, Object)