Interface ValueIterator

  • All Known Implementing Classes:
    DisposableValueBoundIterator, DisposableValueIterator

    public interface ValueIterator
    An interface to declare values iterator.

    A value iterator can be iterated in 2 ways: bottom-up (from lower bound to upper bound)
    and top-down (from upper bound to lower bound).
    To iterate in bottom-up way, first call bottomUpInit(), then hasNext() and next().
    To iterate in bottom-up way, first call topDownInit(), then hasPrevious() and previous().

    Once a way is selected, using the wrong methods can lead to unexpected behaviour.

     ValueIterator vit = ...;
     vit.bottomUpInit();
     while(vit.hasNext()){
        int v = vit.next();
        // operate on value v here
     }
    OR
     ValueIterator vit = ...;
     vit.topDownInit();
     while(vit.hasPrevious()){
        int v = vit.previous();
        // operate on value v here
     }
    Since:
    05/10/11
    Author:
    Charles Prud'homme
    • Method Detail

      • bottomUpInit

        void bottomUpInit()
        Prepare iteration from smallest value to highest value (using hasNext() / next())
         ValueIterator vit = ...;
         vit.bottomUpInit();
         while(vit.hasNext()){
            int v = vit.next();
            // operate on value v here
         }
        OR
      • topDownInit

        void topDownInit()
        Prepare iteration from highest value to smallest value (using hasPrevious() / previous())
         ValueIterator vit = ...;
         vit.topDownInit();
         while(vit.hasPrevious()){
            int v = vit.previous();
            // operate on value v here
         }
      • hasNext

        boolean hasNext()
        Returns true if the iteration has more values. (In other words, returns true if next would return valid value.)
         ValueIterator vit = ...;
         vit.bottomUpInit();
         while(vit.hasNext()){
            int v = vit.next();
            // operate on value v here
         }
        OR
        Returns:
        true if the getIterator has more values.
      • hasPrevious

        boolean hasPrevious()
        Returns true if the iteration has more ranges. (In other words, returns true if previous would return a valid value.)
         ValueIterator vit = ...;
         vit.topDownInit();
         while(vit.hasPrevious()){
            int v = vit.previous();
            // operate on value v here
         }
        Returns:
        true if the getIterator has more values.
      • next

        int next()
        Compute and return the next value.
         ValueIterator vit = ...;
         vit.bottomUpInit();
         while(vit.hasNext()){
            int v = vit.next();
            // operate on value v here
         }
        OR
        Returns:
        the next element in the iteration.
      • previous

        int previous()
        Compute and return the previous value.
         ValueIterator vit = ...;
         vit.topDownInit();
         while(vit.hasPrevious()){
            int v = vit.previous();
            // operate on value v here
         }
        Returns:
        the previous element in the iteration.