/* * Copyright (C) 2007 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * This package contains generic collection interfaces and implementations, and * other utilities for working with collections. * *

Collection Types

* *
*
{@link com.google.common.collect.Multimap} *
A new type, which is similar to {@link java.util.Map}, but may contain * multiple entries with the same key. Some behaviors of * {@link com.google.common.collect.Multimap} are left unspecified and are * provided only by the subtypes mentioned below. * *
{@link com.google.common.collect.SetMultimap} *
An extension of {@link com.google.common.collect.Multimap} which has * order-independent equality and does not allow duplicate entries; that is, * while a key may appear twice in a {@code SetMultimap}, each must map to a * different value. {@code SetMultimap} takes its name from the fact that * the {@linkplain com.google.common.collect.SetMultimap#get collection of * values} associated with a given key fulfills the {@link java.util.Set} * contract. * *
{@link com.google.common.collect.ListMultimap} *
An extension of {@link com.google.common.collect.Multimap} which permits * duplicate entries, supports random access of values for a particular key, * and has partially order-dependent equality as defined by * {@link com.google.common.collect.ListMultimap#equals(Object)}. {@code * ListMultimap} takes its name from the fact that the {@linkplain * com.google.common.collect.ListMultimap#get collection of values} * associated with a given key fulfills the {@link java.util.List} contract. * *
{@link com.google.common.collect.SortedSetMultimap} *
An extension of {@link com.google.common.collect.SetMultimap} for which * the {@linkplain com.google.common.collect.SortedSetMultimap#get * collection values} associated with a given key is a * {@link java.util.SortedSet}. * *
{@link com.google.common.collect.Multiset} *
An extension of {@link java.util.Collection} that may contain duplicate * values like a {@link java.util.List}, yet has order-independent equality * like a {@link java.util.Set}. One typical use for a multiset is to * represent a histogram. * *
{@link com.google.common.collect.BiMap} *
An extension of {@link java.util.Map} that guarantees the uniqueness of * its values as well as that of its keys. This is sometimes called an * "invertible map," since the restriction on values enables it to support * an {@linkplain com.google.common.collect.BiMap#inverse inverse view} -- * which is another instance of {@code BiMap}. * *
{@link com.google.common.collect.ClassToInstanceMap} *
An extension of {@link java.util.Map} that associates a raw type with an * instance of that type. *
* *

Collection Implementations

* *

of {@link java.util.List}

*
*
{@link com.google.common.collect.ImmutableList} * * *

of {@link java.util.Set}

*
*
{@link com.google.common.collect.ImmutableSet} * * *

of {@link java.util.SortedSet}

*
*
{@link com.google.common.collect.ImmutableSortedSet} *
* *

of {@link java.util.Map}

*
*
{@link com.google.common.collect.ImmutableMap} *
{@link com.google.common.collect.MapMaker} (produced by) * * *

of {@link java.util.SortedMap}

*
*
{@link com.google.common.collect.ImmutableSortedMap} *
* *

of {@link com.google.common.collect.Multimap}

*
*
{@link com.google.common.collect.ImmutableMultimap} *
{@link com.google.common.collect.Multimaps#newMultimap} *
* *

of {@link com.google.common.collect.ListMultimap}

*
*
{@link com.google.common.collect.ImmutableListMultimap} *
{@link com.google.common.collect.ArrayListMultimap} *
{@link com.google.common.collect.LinkedListMultimap} *
{@link com.google.common.collect.Multimaps#newListMultimap} *
* *

of {@link com.google.common.collect.SetMultimap}

*
*
{@link com.google.common.collect.ImmutableSetMultimap} *
{@link com.google.common.collect.HashMultimap} *
{@link com.google.common.collect.LinkedHashMultimap} *
{@link com.google.common.collect.TreeMultimap} *
{@link com.google.common.collect.Multimaps#newSetMultimap} *
{@link com.google.common.collect.Multimaps#newSortedSetMultimap} *
* *

of {@link com.google.common.collect.Multiset}

*
*
{@link com.google.common.collect.ImmutableMultiset} *
{@link com.google.common.collect.ConcurrentHashMultiset} *
{@link com.google.common.collect.HashMultiset} *
{@link com.google.common.collect.LinkedHashMultiset} *
{@link com.google.common.collect.TreeMultiset} *
{@link com.google.common.collect.EnumMultiset} *
* *

of {@link com.google.common.collect.BiMap}

*
*
{@link com.google.common.collect.HashBiMap} *
{@link com.google.common.collect.EnumBiMap} *
{@link com.google.common.collect.EnumHashBiMap} *
* *

of {@link com.google.common.collect.ClassToInstanceMap}

*
*
{@link com.google.common.collect.ImmutableClassToInstanceMap} *
{@link com.google.common.collect.MutableClassToInstanceMap} *
* *

Skeletal implementations

*
*
{@link com.google.common.collect.AbstractIterator} *
{@link com.google.common.collect.UnmodifiableIterator} *
* *

Utilities

* *
*
{@link com.google.common.collect.Collections2} *
{@link com.google.common.collect.Iterators} *
{@link com.google.common.collect.Iterables} *
{@link com.google.common.collect.Lists} *
{@link com.google.common.collect.Maps} *
{@link com.google.common.collect.Ordering} *
{@link com.google.common.collect.Sets} *
{@link com.google.common.collect.Multisets} *
{@link com.google.common.collect.Multimaps} *
{@link com.google.common.collect.ObjectArrays} *
*

Forwarding collections

* *
*
{@link com.google.common.collect.ForwardingCollection } *
{@link com.google.common.collect.ForwardingConcurrentMap } *
{@link com.google.common.collect.ForwardingIterator } *
{@link com.google.common.collect.ForwardingList } *
{@link com.google.common.collect.ForwardingListIterator } *
{@link com.google.common.collect.ForwardingMap } *
{@link com.google.common.collect.ForwardingMapEntry } *
{@link com.google.common.collect.ForwardingMultimap } *
{@link com.google.common.collect.ForwardingMultiset } *
{@link com.google.common.collect.ForwardingObject } *
{@link com.google.common.collect.ForwardingQueue } *
{@link com.google.common.collect.ForwardingSet } *
{@link com.google.common.collect.ForwardingSortedMap } *
{@link com.google.common.collect.ForwardingSortedSet } *
*/ @javax.annotation.ParametersAreNonnullByDefault package com.google.common.collect;