com.google.common.collect
Class ImmutableCollection<E>

java.lang.Object
  extended by com.google.common.collect.ImmutableCollection<E>
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>
Direct Known Subclasses:
ImmutableList, ImmutableMultiset, ImmutableSet

@GwtCompatible(emulated=true)
public abstract class ImmutableCollection<E>
extends Object
implements Collection<E>, Serializable

An immutable collection. Does not permit null elements.

In addition to the Collection methods, this class has an asList() method, which returns a list view of the collection's elements.

Note: Although this class is not final, it cannot be subclassed outside of this package as it has no public or protected constructors. Thus, instances of this type are guaranteed to be immutable.

Since:
2 (imported from Google Collections Library)
Author:
Jesse Wilson
See Also:
Serialized Form

Method Summary
 boolean add(E e)
          Guaranteed to throw an exception and leave the collection unmodified.
 boolean addAll(Collection<? extends E> newElements)
          Guaranteed to throw an exception and leave the collection unmodified.
 ImmutableList<E> asList()
          Returns a list view of the collection.
 void clear()
          Guaranteed to throw an exception and leave the collection unmodified.
 boolean contains(Object object)
          Returns true if this collection contains the specified element.
 boolean containsAll(Collection<?> targets)
          Returns true if this collection contains all of the elements in the specified collection.
 boolean isEmpty()
          Returns true if this collection contains no elements.
abstract  UnmodifiableIterator<E> iterator()
          Returns an unmodifiable iterator across the elements in this collection.
 boolean remove(Object object)
          Guaranteed to throw an exception and leave the collection unmodified.
 boolean removeAll(Collection<?> oldElements)
          Guaranteed to throw an exception and leave the collection unmodified.
 boolean retainAll(Collection<?> elementsToKeep)
          Guaranteed to throw an exception and leave the collection unmodified.
 Object[] toArray()
          Returns an array containing all of the elements in this collection.
<T> T[]
toArray(T[] other)
          Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.
 String toString()
          Returns a string representation of the object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
equals, hashCode, size
 

Method Detail

iterator

public abstract UnmodifiableIterator<E> iterator()
Returns an unmodifiable iterator across the elements in this collection.

Specified by:
iterator in interface Iterable<E>
Specified by:
iterator in interface Collection<E>
Returns:
an Iterator over the elements in this collection

toArray

public Object[] toArray()
Description copied from interface: java.util.Collection
Returns an array containing all of the elements in this collection. If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.

The returned array will be "safe" in that no references to it are maintained by this collection. (In other words, this method must allocate a new array even if this collection is backed by an array). The caller is thus free to modify the returned array.

This method acts as bridge between array-based and collection-based APIs.

Specified by:
toArray in interface Collection<E>
Returns:
an array containing all of the elements in this collection

toArray

public <T> T[] toArray(T[] other)
Description copied from interface: java.util.Collection
Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array. If the collection fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this collection.

If this collection fits in the specified array with room to spare (i.e., the array has more elements than this collection), the element in the array immediately following the end of the collection is set to null. (This is useful in determining the length of this collection only if the caller knows that this collection does not contain any null elements.)

If this collection makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.

Like the Collection.toArray() method, this method acts as bridge between array-based and collection-based APIs. Further, this method allows precise control over the runtime type of the output array, and may, under certain circumstances, be used to save allocation costs.

Suppose x is a collection known to contain only strings. The following code can be used to dump the collection into a newly allocated array of String:

     String[] y = x.toArray(new String[0]);
Note that toArray(new Object[0]) is identical in function to toArray().

Specified by:
toArray in interface Collection<E>
Parameters:
other - the array into which the elements of this collection are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
an array containing all of the elements in this collection

contains

public boolean contains(@Nullable
                        Object object)
Description copied from interface: java.util.Collection
Returns true if this collection contains the specified element. More formally, returns true if and only if this collection contains at least one element e such that (o==null ? e==null : o.equals(e)).

Specified by:
contains in interface Collection<E>
Parameters:
object - element whose presence in this collection is to be tested
Returns:
true if this collection contains the specified element

containsAll

public boolean containsAll(Collection<?> targets)
Description copied from interface: java.util.Collection
Returns true if this collection contains all of the elements in the specified collection.

Specified by:
containsAll in interface Collection<E>
Parameters:
targets - collection to be checked for containment in this collection
Returns:
true if this collection contains all of the elements in the specified collection
See Also:
Collection.contains(Object)

isEmpty

public boolean isEmpty()
Description copied from interface: java.util.Collection
Returns true if this collection contains no elements.

Specified by:
isEmpty in interface Collection<E>
Returns:
true if this collection contains no elements

toString

public String toString()
Description copied from class: java.lang.Object
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Overrides:
toString in class Object
Returns:
a string representation of the object.

add

public final boolean add(E e)
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
add in interface Collection<E>
Parameters:
e - element whose presence in this collection is to be ensured
Returns:
true if this collection changed as a result of the call
Throws:
UnsupportedOperationException - always

remove

public final boolean remove(Object object)
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
remove in interface Collection<E>
Parameters:
object - element to be removed from this collection, if present
Returns:
true if an element was removed as a result of this call
Throws:
UnsupportedOperationException - always

addAll

public final boolean addAll(Collection<? extends E> newElements)
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
addAll in interface Collection<E>
Parameters:
newElements - collection containing elements to be added to this collection
Returns:
true if this collection changed as a result of the call
Throws:
UnsupportedOperationException - always
See Also:
Collection.add(Object)

removeAll

public final boolean removeAll(Collection<?> oldElements)
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
removeAll in interface Collection<E>
Parameters:
oldElements - collection containing elements to be removed from this collection
Returns:
true if this collection changed as a result of the call
Throws:
UnsupportedOperationException - always
See Also:
Collection.remove(Object), Collection.contains(Object)

retainAll

public final boolean retainAll(Collection<?> elementsToKeep)
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
retainAll in interface Collection<E>
Parameters:
elementsToKeep - collection containing elements to be retained in this collection
Returns:
true if this collection changed as a result of the call
Throws:
UnsupportedOperationException - always
See Also:
Collection.remove(Object), Collection.contains(Object)

clear

public final void clear()
Guaranteed to throw an exception and leave the collection unmodified.

Specified by:
clear in interface Collection<E>
Throws:
UnsupportedOperationException - always

asList

public ImmutableList<E> asList()
Returns a list view of the collection.

Since:
2