Class CompositeIterable<E>

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

public final class CompositeIterable<E> extends AbstractLazyIterable<E>
  • Constructor Details

    • CompositeIterable

      public CompositeIterable()
  • Method Details

    • with

      public static <T> CompositeIterable<T> with(Iterable<T>... iterables)
    • each

      public void each(Procedure<? super E> 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()));
       

      Example using an anonymous inner class:

       people.each(new Procedure<Person>()
       {
           public void value(Person 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 E> objectIntProcedure)
      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<E>
      Overrides:
      forEachWithIndex in class AbstractRichIterable<E>
    • forEachWith

      public <P> void forEachWith(Procedure2<? super E,? 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<E>
      Overrides:
      forEachWith in class AbstractRichIterable<E>
    • anySatisfy

      public boolean anySatisfy(Predicate<? super E> predicate)
      Description copied from interface: RichIterable
      Returns true if the predicate evaluates to true for any element of the iterable. Returns false if the iterable is empty, or if no element returned true when evaluating the predicate.
      Specified by:
      anySatisfy in interface RichIterable<E>
      Overrides:
      anySatisfy in class AbstractRichIterable<E>
    • allSatisfy

      public boolean allSatisfy(Predicate<? super E> predicate)
      Description copied from interface: RichIterable
      Returns true if the predicate evaluates to true for every element of the iterable or if the iterable is empty. Otherwise, returns false.
      Specified by:
      allSatisfy in interface RichIterable<E>
      Overrides:
      allSatisfy in class AbstractRichIterable<E>
    • noneSatisfy

      public boolean noneSatisfy(Predicate<? super E> predicate)
      Description copied from interface: RichIterable
      Returns true if the predicate evaluates to false for every element of the iterable or if the iterable is empty. Otherwise, returns false.
      Specified by:
      noneSatisfy in interface RichIterable<E>
      Overrides:
      noneSatisfy in class AbstractRichIterable<E>
    • detect

      public E detect(Predicate<? super E> predicate)
      Description copied from interface: RichIterable
      Returns the first element of the iterable for which the predicate evaluates to true or null in the case where no element returns true. This method is commonly called find.

      Example using a Java 8 lambda expression:

       Person person =
           people.detect(person -> person.getFirstName().equals("John") && person.getLastName().equals("Smith"));
       

      Example using an anonymous inner class:

       Person person =
           people.detect(new Predicate<Person>()
           {
               public boolean accept(Person person)
               {
                   return person.getFirstName().equals("John") && person.getLastName().equals("Smith");
               }
           });
       
      Specified by:
      detect in interface RichIterable<E>
      Overrides:
      detect in class AbstractRichIterable<E>
    • detectOptional

      public Optional<E> detectOptional(Predicate<? super E> predicate)
      Description copied from interface: RichIterable
      Returns the first element of the iterable for which the predicate evaluates to true as an Optional. This method is commonly called find.

      Example using a Java 8 lambda expression:

       Person person =
           people.detectOptional(person -> person.getFirstName().equals("John") && person.getLastName().equals("Smith"));
       

      Specified by:
      detectOptional in interface RichIterable<E>
      Overrides:
      detectOptional in class AbstractRichIterable<E>
    • add

      public void add(Iterable<E> iterable)
    • size

      public int size()
      Description copied from interface: RichIterable
      Returns the number of items in this iterable.
      Specified by:
      size in interface RichIterable<E>
      Overrides:
      size in class AbstractLazyIterable<E>
    • iterator

      public Iterator<E> iterator()