Documentation of 'cc.redberry.core.combinatorics.IntDistinctTuplesPort' Java class
IntDistinctTuplesPort
cc.redberry.core.combinatorics

Class IntDistinctTuplesPort

  • All Implemented Interfaces:
    IntCombinatorialPort, OutputPort<int[]>


    public class IntDistinctTuplesPort
    extends java.lang.Object
    implements IntCombinatorialPort
    This class represents an iterator (implemented in the output port pattern) over all distinct N-tuples, which can be chosen from N sets of integers. More formally, for N integer arrays: array1, array2,...,arrayN, this class allows to iterate over all possible integer arrays of the form [i1, i2,...,iN], where all numbers numbers ij are different and i1 is chosen from array1, i2 is chosen from array2 and so on.

    Consider the example:

     int[] a1 = {1, 2, 3};
     int[] a2 = {2, 3};
     DistinctCombinationsPort dcp = new DistinctCombinationsPort(a1, a2);
     int[] tuple;
     while ((tuple = dcp.take()) != null)
          System.out.println(Arrays.toString(tuple));
     
    This code will produce the following sequence:
     [1, 2]
     [1, 3]
     [2, 3]
     [3, 2]
     

    This class is implemented via output port pattern and the calculation of the next tuple occurs only on the invocation of take().

    Note: method take() returns the same reference on each invocation. So, if it is needed not only to obtain the information from take(), but also save the result, it is necessary to clone the returned array.

    Since:
    1.0
    • Constructor Detail

      • IntDistinctTuplesPort

        public IntDistinctTuplesPort(int[]... sets)
    • Method Detail

      • take

        public int[] take()
        Calculates and returns the next tuple, or null if no more distinct tuples exist.
        Specified by:
        take in interface IntCombinatorialPort
        Specified by:
        take in interface OutputPort<int[]>
        Returns:
        the next tuple, or null if no more distinct tuples exist
      • getReference

        public int[] getReference()
        Description copied from interface: IntCombinatorialPort
        Returns the reference to the current iteration element.
        Specified by:
        getReference in interface IntCombinatorialPort
        Returns:
        the reference to the current iteration element

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.