Class TakeIterable<T>

All Implemented Interfaces:
Iterable<T>, InternalIterable<T>, LazyIterable<T>, RichIterable<T>

public class TakeIterable<T> extends AbstractLazyIterable<T>
Iterates over the first count elements of the adapted Iterable or the full size of the adapted iterable if the count is greater than the length of the receiver.
  • Field Details

    • adapted

      private final Iterable<T> adapted
    • count

      private final int count
  • Constructor Details

    • TakeIterable

      public TakeIterable(Iterable<T> newAdapted, int count)
  • Method Details

    • each

      public void each(Procedure<? super T> procedure)
      Description copied from interface: RichIterable
      The procedure is executed for each element in the iterable.

      Example using a Java 8 lambda expression:

      people.each(person -> LOGGER.info(person.getName()));
      
      This method is a variant of InternalIterable.forEach(Procedure) that has a signature conflict with Iterable.forEach(java.util.function.Consumer).
      See Also:
    • forEachWithIndex

      public void forEachWithIndex(ObjectIntProcedure<? super T> procedure)
      Description copied from interface: InternalIterable
      Iterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.

      Example using a Java 8 lambda:

      people.forEachWithIndex((Person person, int index) -> LOGGER.info("Index: " + index + " person: " + person.getName()));
      

      Example using an anonymous inner class:

      people.forEachWithIndex(new ObjectIntProcedure<Person>()
      {
          public void value(Person person, int index)
          {
              LOGGER.info("Index: " + index + " person: " + person.getName());
          }
      });
      
      Specified by:
      forEachWithIndex in interface InternalIterable<T>
      Overrides:
      forEachWithIndex in class AbstractRichIterable<T>
    • forEachWith

      public <P> void forEachWith(Procedure2<? super T, ? super P> procedure, P parameter)
      Description copied from interface: InternalIterable
      The procedure2 is evaluated for each element in the iterable with the specified parameter provided as the second argument.

      Example using a Java 8 lambda:

      people.forEachWith((Person person, Person other) ->
          {
              if (person.isRelatedTo(other))
              {
                   LOGGER.info(person.getName());
              }
          }, fred);
      

      Example using an anonymous inner class:

      people.forEachWith(new Procedure2<Person, Person>()
      {
          public void value(Person person, Person other)
          {
              if (person.isRelatedTo(other))
              {
                   LOGGER.info(person.getName());
              }
          }
      }, fred);
      
      Specified by:
      forEachWith in interface InternalIterable<T>
      Overrides:
      forEachWith in class AbstractRichIterable<T>
    • iterator

      public Iterator<T> iterator()