Package ghidra.util
Class MultiComparableArrayIterator<T extends java.lang.Comparable<T>>
- java.lang.Object
-
- ghidra.util.MultiComparableArrayIterator<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).
-
-
-
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.
-
-