@GwtCompatible(emulated=true) public abstract class FluentIterable<E> extends Object implements Iterable<E>
FluentIterable provides a rich interface for manipulating Iterable instances in a
 chained fashion. A FluentIterable can be created from an Iterable, or from a set
 of elements. The following types of methods are provided on FluentIterable:
 FluentIterable based in some way on the contents
 of the current one (for example transform(com.google.common.base.Function<? super E, T>))
 FluentIterable's contents into a new collection or
 array (for example toList())
 last())
 FluentIterable's contents (for example
 anyMatch(com.google.common.base.Predicate<? super E>))
 Here is an example that merges the lists returned by two separate database calls, transforms
 it by invoking toString() on each element, and returns the first 10 elements as an
 ImmutableList: 
   FluentIterable
       .from(database.getClientList())
       .filter(activeInLastMonth())
       .transform(Functions.toStringFunction())
       .limit(10)
       .toList();
 Anything which can be done using FluentIterable could be done in a different fashion
 (often with Iterables), however the use of FluentIterable makes many sets of
 operations significantly more concise.| Modifier | Constructor and Description | 
|---|---|
protected  | 
FluentIterable()
Constructor for use by subclasses. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
allMatch(Predicate<? super E> predicate)
Returns  
true if every element in this fluent iterable satisfies the predicate. | 
boolean | 
anyMatch(Predicate<? super E> predicate)
Returns  
true if any element in this fluent iterable satisfies the predicate. | 
boolean | 
contains(Object element)
Returns  
true if this fluent iterable contains any object for which
 equals(element) is true. | 
<C extends Collection<? super E>>  | 
copyInto(C collection)
Copies all the elements from this fluent iterable to  
collection. | 
FluentIterable<E> | 
cycle()
Returns a fluent iterable whose  
Iterator cycles indefinitely over the elements of
 this fluent iterable. | 
<T> FluentIterable<T> | 
filter(Class<T> type)
Returns the elements from this fluent iterable that are instances of class  
type. | 
FluentIterable<E> | 
filter(Predicate<? super E> predicate)
Returns the elements from this fluent iterable that satisfy a predicate. 
 | 
Optional<E> | 
first()
Returns an  
Optional containing the first element in this fluent iterable. | 
Optional<E> | 
firstMatch(Predicate<? super E> predicate)
Returns an  
Optional containing the first element in this fluent iterable that
 satisfies the given predicate, if such an element exists. | 
static <E> FluentIterable<E> | 
from(FluentIterable<E> iterable)
Deprecated. 
 
instances of  
FluentIterable don't need to be converted to
     FluentIterable | 
static <E> FluentIterable<E> | 
from(Iterable<E> iterable)
Returns a fluent iterable that wraps  
iterable, or iterable itself if it
 is already a FluentIterable. | 
E | 
get(int position)
Returns the element at the specified position in this fluent iterable. 
 | 
<K> ImmutableListMultimap<K,E> | 
index(Function<? super E,K> keyFunction)
Creates an index  
ImmutableListMultimap that contains the results of applying a
 specified function to each item in this FluentIterable of values. | 
boolean | 
isEmpty()
Determines whether this fluent iterable is empty. 
 | 
Optional<E> | 
last()
Returns an  
Optional containing the last element in this fluent iterable. | 
FluentIterable<E> | 
limit(int size)
Creates a fluent iterable with the first  
size elements of this
 fluent iterable. | 
int | 
size()
Returns the number of elements in this fluent iterable. 
 | 
FluentIterable<E> | 
skip(int numberToSkip)
Returns a view of this fluent iterable that skips its first  
numberToSkip
 elements. | 
E[] | 
toArray(Class<E> type)
Returns an array containing all of the elements from this fluent iterable in iteration order. 
 | 
ImmutableList<E> | 
toImmutableList()
Deprecated. 
 
Use  
toList() instead. This method is scheduled for removal in Guava 15.0. | 
ImmutableSet<E> | 
toImmutableSet()
Deprecated. 
 
Use  
toSet() instead. This method is scheduled for removal in Guava 15.0. | 
ImmutableSortedSet<E> | 
toImmutableSortedSet(Comparator<? super E> comparator)
Deprecated. 
 
Use  
toSortedSet(Comparator) instead. This method is scheduled for removal
     in Guava 15.0. | 
ImmutableList<E> | 
toList()
Returns an  
ImmutableList containing all of the elements from this fluent iterable in
 proper sequence. | 
<V> ImmutableMap<E,V> | 
toMap(Function<? super E,V> valueFunction)
Returns an immutable map for which the elements of this  
FluentIterable are the keys in
 the same order, mapped to values by the given function. | 
ImmutableSet<E> | 
toSet()
Returns an  
ImmutableSet containing all of the elements from this fluent iterable with
 duplicates removed. | 
ImmutableList<E> | 
toSortedImmutableList(Comparator<? super E> comparator)
Deprecated. 
 
Use  
toSortedList(Comparator) instead. This method is scheduled for removal
     in Guava 15.0. | 
ImmutableList<E> | 
toSortedList(Comparator<? super E> comparator)
Returns an  
ImmutableList containing all of the elements from this FluentIterable in the order specified by comparator. | 
ImmutableSortedSet<E> | 
toSortedSet(Comparator<? super E> comparator)
Returns an  
ImmutableSortedSet containing all of the elements from this FluentIterable in the order specified by comparator, with duplicates (determined by
 comparator.compare(x, y) == 0) removed. | 
String | 
toString()
Returns a string representation of this fluent iterable, with the format
  
[e1, e2, ..., en]. | 
<T> FluentIterable<T> | 
transform(Function<? super E,T> function)
Returns a fluent iterable that applies  
function to each element of this
 fluent iterable. | 
<T> FluentIterable<T> | 
transformAndConcat(Function<? super E,? extends Iterable<? extends T>> function)
Applies  
function to each element of this fluent iterable and returns
 a fluent iterable with the concatenated combination of results. | 
<K> ImmutableMap<K,E> | 
uniqueIndex(Function<? super E,K> keyFunction)
Returns an immutable map for which the  
Map.values() are the elements of this
 FluentIterable in the given order, and each key is the product of invoking a supplied
 function on its corresponding value. | 
protected FluentIterable()
public static <E> FluentIterable<E> from(Iterable<E> iterable)
iterable, or iterable itself if it
 is already a FluentIterable.@Deprecated public static <E> FluentIterable<E> from(FluentIterable<E> iterable)
FluentIterable don't need to be converted to
     FluentIterableIterable to
 FluentIterable has obviated the need to explicitly convert to a FluentIterable.public String toString()
[e1, e2, ..., en].public final int size()
public final boolean contains(@Nullable Object element)
true if this fluent iterable contains any object for which
 equals(element) is true.public final FluentIterable<E> cycle()
Iterator cycles indefinitely over the elements of
 this fluent iterable.
 That iterator supports remove() if iterable.iterator() does. After
 remove() is called, subsequent cycles omit the removed element, which is no longer in
 this fluent iterable. The iterator's hasNext() method returns true until
 this fluent iterable is empty.
 
Warning: Typical uses of the resulting iterator may produce an infinite loop. You
 should use an explicit break or be certain that you will eventually remove all the
 elements.
public final FluentIterable<E> filter(Predicate<? super E> predicate)
remove().@GwtIncompatible(value="Class.isInstance") public final <T> FluentIterable<T> filter(Class<T> type)
type.type - the type of elements desiredpublic final boolean anyMatch(Predicate<? super E> predicate)
true if any element in this fluent iterable satisfies the predicate.public final boolean allMatch(Predicate<? super E> predicate)
true if every element in this fluent iterable satisfies the predicate.
 If this fluent iterable is empty, true is returned.public final Optional<E> firstMatch(Predicate<? super E> predicate)
Optional containing the first element in this fluent iterable that
 satisfies the given predicate, if such an element exists.
 Warning: avoid using a predicate that matches null. If null
 is matched in this fluent iterable, a NullPointerException will be thrown.
public final <T> FluentIterable<T> transform(Function<? super E,T> function)
function to each element of this
 fluent iterable.
 The returned fluent iterable's iterator supports remove() if this iterable's
 iterator does. After a successful remove() call, this fluent iterable no longer
 contains the corresponding element.
public <T> FluentIterable<T> transformAndConcat(Function<? super E,? extends Iterable<? extends T>> function)
function to each element of this fluent iterable and returns
 a fluent iterable with the concatenated combination of results.  function
 returns an Iterable of results.
 The returned fluent iterable's iterator supports remove() if this
 function-returned iterables' iterator does. After a successful remove() call,
 the returned fluent iterable no longer contains the corresponding element.
Function<E, Iterable<T>> until 14.0)public final Optional<E> first()
Optional containing the first element in this fluent iterable.
 If the iterable is empty, Optional.absent() is returned.NullPointerException - if the first element is null; if this is a possibility, use
     iterator().next() or Iterables.getFirst(java.lang.Iterable<? extends T>, T) instead.public final Optional<E> last()
Optional containing the last element in this fluent iterable.
 If the iterable is empty, Optional.absent() is returned.NullPointerException - if the last element is null; if this is a possibility, use
     Iterables.getLast(java.lang.Iterable<T>) instead.public final FluentIterable<E> skip(int numberToSkip)
numberToSkip
 elements. If this fluent iterable contains fewer than numberToSkip elements,
 the returned fluent iterable skips all of its elements.
 Modifications to this fluent iterable before a call to iterator() are
 reflected in the returned fluent iterable. That is, the its iterator skips the first
 numberToSkip elements that exist when the iterator is created, not when skip()
 is called.
 
The returned fluent iterable's iterator supports remove() if the
 Iterator of this fluent iterable supports it. Note that it is not
 possible to delete the last skipped element by immediately calling remove() on the
 returned fluent iterable's iterator, as the Iterator contract states that a call
 to * remove() before a call to next() will throw an
 IllegalStateException.
public final FluentIterable<E> limit(int size)
size elements of this
 fluent iterable. If this fluent iterable does not contain that many elements,
 the returned fluent iterable will have the same behavior as this fluent iterable.
 The returned fluent iterable's iterator supports remove() if this
 fluent iterable's iterator does.size - the maximum number of elements in the returned fluent iterableIllegalArgumentException - if size is negativepublic final boolean isEmpty()
public final ImmutableList<E> toList()
ImmutableList containing all of the elements from this fluent iterable in
 proper sequence.toImmutableList()).@Beta public final ImmutableList<E> toSortedList(Comparator<? super E> comparator)
ImmutableList containing all of the elements from this FluentIterable in the order specified by comparator.  To produce an ImmutableList sorted by its natural ordering, use toSortedList(Ordering.natural()).comparator - the function by which to sort list elementsNullPointerException - if any element is nulltoSortedImmutableList()).public final ImmutableSet<E> toSet()
ImmutableSet containing all of the elements from this fluent iterable with
 duplicates removed.toImmutableSet()).public final ImmutableSortedSet<E> toSortedSet(Comparator<? super E> comparator)
ImmutableSortedSet containing all of the elements from this FluentIterable in the order specified by comparator, with duplicates (determined by
 comparator.compare(x, y) == 0) removed. To produce an ImmutableSortedSet sorted
 by its natural ordering, use toSortedSet(Ordering.natural()).comparator - the function by which to sort set elementsNullPointerException - if any element is nulltoImmutableSortedSet()).public final <V> ImmutableMap<E,V> toMap(Function<? super E,V> valueFunction)
FluentIterable are the keys in
 the same order, mapped to values by the given function. If this iterable contains duplicate
 elements, the returned map will contain each distinct element once in the order it first
 appears.NullPointerException - if any element of this iterable is null, or if valueFunction produces null for any keypublic final <K> ImmutableListMultimap<K,E> index(Function<? super E,K> keyFunction)
ImmutableListMultimap that contains the results of applying a
 specified function to each item in this FluentIterable of values. Each element of this
 iterable will be stored as a value in the resulting multimap, yielding a multimap with the same
 size as this iterable. The key used to store that value in the multimap will be the result of
 calling the function on that value. The resulting multimap is created as an immutable snapshot.
 In the returned multimap, keys appear in the order they are first encountered, and the values
 corresponding to each key appear in the same order as they are encountered.keyFunction - the function used to produce the key for each valueNullPointerException - if any of the following cases is true:
     keyFunction is null
       keyFunction returns null for any element of this iterable
     public final <K> ImmutableMap<K,E> uniqueIndex(Function<? super E,K> keyFunction)
Map.values() are the elements of this
 FluentIterable in the given order, and each key is the product of invoking a supplied
 function on its corresponding value.keyFunction - the function used to produce the key for each valueIllegalArgumentException - if keyFunction produces the same key for more than one
     value in this fluent iterableNullPointerException - if any element of this fluent iterable is null, or if
     keyFunction produces null for any value@Deprecated public final ImmutableList<E> toImmutableList()
toList() instead. This method is scheduled for removal in Guava 15.0.ImmutableList containing all of the elements from this
 fluent iterable in proper sequence.@Deprecated public final ImmutableList<E> toSortedImmutableList(Comparator<? super E> comparator)
toSortedList(Comparator) instead. This method is scheduled for removal
     in Guava 15.0.ImmutableList containing all of the elements from this
 FluentIterable in the order specified by comparator.  To produce an
 ImmutableList sorted by its natural ordering, use
 toSortedImmutableList(Ordering.natural()).comparator - the function by which to sort list elementsNullPointerException - if any element is null@Deprecated public final ImmutableSet<E> toImmutableSet()
toSet() instead. This method is scheduled for removal in Guava 15.0.ImmutableSet containing all of the elements from this
 fluent iterable with duplicates removed.@Deprecated public final ImmutableSortedSet<E> toImmutableSortedSet(Comparator<? super E> comparator)
toSortedSet(Comparator) instead. This method is scheduled for removal
     in Guava 15.0.ImmutableSortedSet containing all of the elements from this
 FluentIterable in the order specified by comparator, with duplicates
 (determined by comparator.compare(x, y) == 0) removed. To produce an
 ImmutableSortedSet sorted by its natural ordering, use
 toImmutableSortedSet(Ordering.natural()).comparator - the function by which to sort set elementsNullPointerException - if any element is null@GwtIncompatible(value="Array.newArray(Class, int)") public final E[] toArray(Class<E> type)
type - the type of the elementspublic final <C extends Collection<? super E>> C copyInto(C collection)
collection. This is equivalent to
 calling Iterables.addAll(collection, this).collection - the collection to copy elements tocollection, for conveniencepublic final E get(int position)
position - position of the element to returnIndexOutOfBoundsException - if position is negative or greater than or equal to
     the size of this fluent iterableCopyright © 2010-2013. All Rights Reserved.