Package hudson.util

Class Iterators

java.lang.Object
hudson.util.Iterators

public class Iterators extends Object
Varios Iterator implementations.
Author:
Kohsuke Kawaguchi
See Also:
  • Constructor Details

    • Iterators

      public Iterators()
  • Method Details

    • empty

      public static <T> Iterator<T> empty()
      Returns the empty iterator.
    • reverse

      public static <T> Iterable<T> reverse(List<T> lst)
      Returns the Iterable that lists items in the reverse order.
      Since:
      1.150
    • wrap

      public static <T> Iterable<T> wrap(Iterable<T> base)
      Returns an Iterable that lists items in the normal order but which hides the base iterator implementation details.
      Since:
      1.492
    • sequence

      public static List<Integer> sequence(int start, int end, int step)
      Returns a list that represents [start,end). For example sequence(1,5,1)={1,2,3,4}, and sequence(7,1,-2)={7.5,3}
      Since:
      1.150
    • sequence

      public static List<Integer> sequence(int start, int end)
    • reverseSequence

      public static List<Integer> reverseSequence(int start, int end, int step)
      The short cut for reverse(sequence(start,end,step)).
      Since:
      1.150
    • reverseSequence

      public static List<Integer> reverseSequence(int start, int end)
    • cast

      public static <T> Iterator<T> cast(Iterator<? extends T> itr)
      Casts Iterator by taking advantage of its covariant-ness.
    • cast

      public static <T> Iterable<T> cast(Iterable<? extends T> itr)
      Casts Iterable by taking advantage of its covariant-ness.
    • subType

      public static <U, T extends U> Iterator<T> subType(Iterator<U> itr, Class<T> type)
      Returns an Iterator that only returns items of the given subtype.
    • readOnly

      public static <T> Iterator<T> readOnly(Iterator<T> itr)
      Creates a read-only mutator that disallows Iterator.remove().
    • removeNull

      public static <T> Iterator<T> removeNull(Iterator<T> itr)
      Wraps another iterator and throws away nulls.
    • sequence

      @SafeVarargs public static <T> Iterable<T> sequence(Iterable<? extends T>... iterables)
      Returns an Iterable that iterates over all the given Iterables.

      That is, this creates {A,B,C,D} from {A,B},{C,D}.

    • removeDups

      public static <T> Iterator<T> removeDups(Iterator<T> iterator)
      Filters another iterator by eliminating duplicates.
    • removeDups

      public static <T> Iterable<T> removeDups(Iterable<T> base)
      Filters another iterator by eliminating duplicates.
    • sequence

      @SafeVarargs public static <T> Iterator<T> sequence(Iterator<? extends T>... iterators)
    • limit

      public static <T> Iterator<T> limit(Iterator<? extends T> base, Iterators.CountingPredicate<? super T> filter)
      Returns the elements in the base iterator until it hits any element that doesn't satisfy the filter. Then the rest of the elements in the base iterator gets ignored.
      Since:
      1.485
    • skip

      @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static void skip(@NonNull Iterator<?> iterator, int count)
      Calls next() on iterator, either count times or until hasNext() returns false, whichever comes first.
      Parameters:
      iterator - some iterator
      count - a nonnegative count