Package ghidra.util

Class MultiComparableArrayIterator<T extends java.lang.Comparable<T>>


  • public class MultiComparableArrayIterator<T extends java.lang.Comparable<T>>
    extends java.lang.Object
    MultiComparableArrayIterator takes multiple arrays of comparable objects and iterates through them simultaneously. The arrays must contain objects that are comparable within each array and between the multiple arrays. All arrays must be sorted in ascending order when handed to this class. Iterating returns the next object(s) from one or more of the arrays based on the compareTo() of the next objects in each of the arrays. If a particular array doesn't contain the next object, based on all arrays, then a null is returned as the next object for that array.
    • Constructor Summary

      Constructors 
      Constructor Description
      MultiComparableArrayIterator​(T[][] arrays)
      Constructor of a multi-comparable object array iterator for traversing multiple comparable object arrays simultaneously.
      MultiComparableArrayIterator​(T[][] arrays, boolean forward)
      Constructor of a multi comparable object array iterator for traversing multiple comparable object arrays simultaneously.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean hasNext()
      Determines whether or not any of the original arrays has a next object.
      T[] next()
      Returns the next comparable object(s).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • MultiComparableArrayIterator

        public MultiComparableArrayIterator​(T[][] arrays)
        Constructor of a multi-comparable object array iterator for traversing multiple comparable object arrays simultaneously.
        Important: The items in each array must be in ascending order.
        Parameters:
        arrays - the array of Comparable object arrays. Each array needs to be in ascending order.
      • MultiComparableArrayIterator

        public MultiComparableArrayIterator​(T[][] arrays,
                                            boolean forward)
        Constructor of a multi comparable object array iterator for traversing multiple comparable object arrays simultaneously.
        Parameters:
        arrays - the array of Comparable object arrays. Each array needs to be in ascending order.
        forward - true indicates that the iterator return comparable objects from min to max. false indicates to iterate backwards (from max to min).
    • Method Detail

      • hasNext

        public boolean hasNext()
        Determines whether or not any of the original arrays has a next object.
        Returns:
        true if a next object can be obtained from any of the comparable object arrays.
      • next

        public T[] next()
        Returns the next comparable object(s). The next object could be from any one or more of the arrays. The object array returned corresponds to the comparable arrays originally passed to the constructor. All objects returned are effectively the same as determined by the compareTo() method. If the next object for one of the original comparable arrays is not the same as the next overall object, then a null is returned in its place.
        Returns:
        an array with the next object found for each of the original arrays. Some of these may be null, indicating the corresponding comparable array didn't possess the next object. However, that comparable array may still have objects on subsequent calls. There will be as many elements in this array as the number of comparable arrays passed to the constructor.