Package extra166y

Class ParallelArrayWithMapping<T,​U>

  • Direct Known Subclasses:
    ParallelArrayWithFilter

    public abstract class ParallelArrayWithMapping<T,​U>
    extends AbstractParallelAnyArray
    A prefix view of ParallelArray that causes operations to apply to mappings of elements, not to the elements themselves. Instances of this class may be constructed only via prefix methods of ParallelArray or its other prefix classes.
    • Method Detail

      • apply

        public void apply​(Ops.Procedure<? super U> procedure)
        Applies the given procedure to elements
        Parameters:
        procedure - the procedure
      • reduce

        public U reduce​(Ops.Reducer<U> reducer,
                        U base)
        Returns reduction of elements
        Parameters:
        reducer - the reducer
        base - the result for an empty array
        Returns:
        reduction
      • any

        public U any()
        Returns some element matching bound and filter constraints, or null if none.
        Returns:
        an element, or null if none.
      • min

        public U min​(java.util.Comparator<? super U> comparator)
        Returns the minimum element, or null if empty
        Parameters:
        comparator - the comparator
        Returns:
        minimum element, or null if empty
      • min

        public U min()
        Returns the minimum element, or null if empty, assuming that all elements are Comparables
        Returns:
        minimum element, or null if empty
        Throws:
        java.lang.ClassCastException - if any element is not Comparable.
      • max

        public U max​(java.util.Comparator<? super U> comparator)
        Returns the maximum element, or null if empty
        Parameters:
        comparator - the comparator
        Returns:
        maximum element, or null if empty
      • max

        public U max()
        Returns the maximum element, or null if empty assuming that all elements are Comparables
        Returns:
        maximum element, or null if empty
        Throws:
        java.lang.ClassCastException - if any element is not Comparable.
      • summary

        public ParallelArray.SummaryStatistics<U> summary​(java.util.Comparator<? super U> comparator)
        Returns summary statistics, using the given comparator to locate minimum and maximum elements.
        Parameters:
        comparator - the comparator to use for locating minimum and maximum elements
        Returns:
        the summary.
      • all

        public ParallelArray<U> all()
        Returns a new ParallelArray holding elements
        Returns:
        a new ParallelArray holding elements
      • all

        public ParallelArray<U> all​(java.lang.Class<? super U> elementType)
        Returns a new ParallelArray with the given element type holding elements
        Parameters:
        elementType - the type of the elements
        Returns:
        a new ParallelArray holding elements
      • withMapping

        public abstract <V> ParallelArrayWithMapping<T,​V> withMapping​(Ops.Op<? super U,​? extends V> op)
        Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
        Parameters:
        op - the op
        Returns:
        operation prefix
      • withMapping

        public abstract ParallelArrayWithDoubleMapping<T> withMapping​(Ops.ObjectToDouble<? super U> op)
        Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
        Parameters:
        op - the op
        Returns:
        operation prefix
      • withMapping

        public abstract ParallelArrayWithLongMapping<T> withMapping​(Ops.ObjectToLong<? super U> op)
        Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op applied to current op's results
        Parameters:
        op - the op
        Returns:
        operation prefix
      • withMapping

        public <V,​W,​X> ParallelArrayWithMapping<T,​W> withMapping​(Ops.BinaryOp<? super U,​? super V,​? extends W> combiner,
                                                                                   ParallelArrayWithMapping<X,​V> other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public <V> ParallelArrayWithMapping<T,​V> withMapping​(Ops.ObjectAndDoubleToObject<? super U,​? extends V> combiner,
                                                                   ParallelDoubleArrayWithDoubleMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public <V> ParallelArrayWithMapping<T,​V> withMapping​(Ops.ObjectAndLongToObject<? super U,​? extends V> combiner,
                                                                   ParallelLongArrayWithLongMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public <V,​W> ParallelArrayWithDoubleMapping<T> withMapping​(Ops.ObjectAndObjectToDouble<? super U,​? super V> combiner,
                                                                         ParallelArrayWithMapping<W,​V> other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public ParallelArrayWithDoubleMapping<T> withMapping​(Ops.ObjectAndDoubleToDouble<? super U> combiner,
                                                             ParallelDoubleArrayWithDoubleMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public ParallelArrayWithDoubleMapping<T> withMapping​(Ops.ObjectAndLongToDouble<? super U> combiner,
                                                             ParallelLongArrayWithLongMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public <V,​W> ParallelArrayWithLongMapping<T> withMapping​(Ops.ObjectAndObjectToLong<? super U,​? super V> combiner,
                                                                       ParallelArrayWithMapping<W,​V> other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public ParallelArrayWithLongMapping<T> withMapping​(Ops.ObjectAndDoubleToLong<? super U> combiner,
                                                           ParallelDoubleArrayWithDoubleMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withMapping

        public ParallelArrayWithLongMapping<T> withMapping​(Ops.ObjectAndLongToLong<? super U> combiner,
                                                           ParallelLongArrayWithLongMapping other)
        Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.
        Parameters:
        combiner - the combiner
        other - the other array
        Returns:
        operation prefix
        Throws:
        java.lang.IllegalArgumentException - if other array is a filtered view (all filters must precede all mappings).
      • withIndexedMapping

        public abstract <V> ParallelArrayWithMapping<T,​V> withIndexedMapping​(Ops.IntAndObjectToObject<? super U,​? extends V> mapper)
        Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
        Parameters:
        mapper - the mapper
        Returns:
        operation prefix
      • withIndexedMapping

        public abstract ParallelArrayWithDoubleMapping<T> withIndexedMapping​(Ops.IntAndObjectToDouble<? super U> mapper)
        Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
        Parameters:
        mapper - the mapper
        Returns:
        operation prefix
      • withIndexedMapping

        public abstract ParallelArrayWithLongMapping<T> withIndexedMapping​(Ops.IntAndObjectToLong<? super U> mapper)
        Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value (as mapped by preceding mappings, if any), and produces a new value.
        Parameters:
        mapper - the mapper
        Returns:
        operation prefix
      • sequentially

        public java.lang.Iterable<U> sequentially()
        Returns an Iterable view to sequentially step through mapped elements also obeying bound and filter constraints, without performing computations to evaluate them in parallel
        Returns:
        the Iterable view