| /* |
| * 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. |
| * |
| * <h2>Collection Types</h2> |
| * |
| * <dl> |
| * <dt>{@link com.google.common.collect.Multimap} |
| * <dd>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. |
| * |
| * <dt>{@link com.google.common.collect.SetMultimap} |
| * <dd>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. |
| * |
| * <dt>{@link com.google.common.collect.ListMultimap} |
| * <dd>An extension of {@link com.google.common.collect.Multimap} which permits |
| * duplicate entries, supports random access of values for a particular key, |
| * and has <i>partially order-dependent equality</i> 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. |
| * |
| * <dt>{@link com.google.common.collect.SortedSetMultimap} |
| * <dd>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}. |
| * |
| * <dt>{@link com.google.common.collect.Multiset} |
| * <dd>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. |
| * |
| * <dt>{@link com.google.common.collect.BiMap} |
| * <dd>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}. |
| * |
| * <dt>{@link com.google.common.collect.ClassToInstanceMap} |
| * <dd>An extension of {@link java.util.Map} that associates a raw type with an |
| * instance of that type. |
| * </dl> |
| * |
| * <h2>Collection Implementations</h2> |
| * |
| * <h3>of {@link java.util.List}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableList} |
| * </ul> |
| * |
| * <h3>of {@link java.util.Set}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableSet} |
| * </ul> |
| * |
| * <h3>of {@link java.util.SortedSet}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableSortedSet} |
| * </dl> |
| * |
| * <h3>of {@link java.util.Map}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableMap} |
| * <dt>{@link com.google.common.collect.MapMaker} (produced by) |
| * </ul> |
| * |
| * <h3>of {@link java.util.SortedMap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableSortedMap} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.Multimap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableMultimap} |
| * <dt>{@link com.google.common.collect.Multimaps#newMultimap} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.ListMultimap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableListMultimap} |
| * <dt>{@link com.google.common.collect.ArrayListMultimap} |
| * <dt>{@link com.google.common.collect.LinkedListMultimap} |
| * <dt>{@link com.google.common.collect.Multimaps#newListMultimap} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.SetMultimap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableSetMultimap} |
| * <dt>{@link com.google.common.collect.HashMultimap} |
| * <dt>{@link com.google.common.collect.LinkedHashMultimap} |
| * <dt>{@link com.google.common.collect.TreeMultimap} |
| * <dt>{@link com.google.common.collect.Multimaps#newSetMultimap} |
| * <dt>{@link com.google.common.collect.Multimaps#newSortedSetMultimap} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.Multiset}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableMultiset} |
| * <dt>{@link com.google.common.collect.ConcurrentHashMultiset} |
| * <dt>{@link com.google.common.collect.HashMultiset} |
| * <dt>{@link com.google.common.collect.LinkedHashMultiset} |
| * <dt>{@link com.google.common.collect.TreeMultiset} |
| * <dt>{@link com.google.common.collect.EnumMultiset} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.BiMap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.HashBiMap} |
| * <dt>{@link com.google.common.collect.EnumBiMap} |
| * <dt>{@link com.google.common.collect.EnumHashBiMap} |
| * </dl> |
| * |
| * <h3>of {@link com.google.common.collect.ClassToInstanceMap}</h3> |
| * <dl> |
| * <dt>{@link com.google.common.collect.ImmutableClassToInstanceMap} |
| * <dt>{@link com.google.common.collect.MutableClassToInstanceMap} |
| * </dl> |
| * |
| * <h2>Skeletal implementations</h2> |
| * <dl> |
| * <dt>{@link com.google.common.collect.AbstractIterator} |
| * <dt>{@link com.google.common.collect.UnmodifiableIterator} |
| * </dl> |
| * |
| * <h2>Utilities</h2> |
| * |
| * <dl> |
| * <dt>{@link com.google.common.collect.Collections2} |
| * <dt>{@link com.google.common.collect.Iterators} |
| * <dt>{@link com.google.common.collect.Iterables} |
| * <dt>{@link com.google.common.collect.Lists} |
| * <dt>{@link com.google.common.collect.Maps} |
| * <dt>{@link com.google.common.collect.Ordering} |
| * <dt>{@link com.google.common.collect.Sets} |
| * <dt>{@link com.google.common.collect.Multisets} |
| * <dt>{@link com.google.common.collect.Multimaps} |
| * <dt>{@link com.google.common.collect.ObjectArrays} |
| * </dl> |
| |
| * <h2>Forwarding collections</h2> |
| * |
| * <dl> |
| * <dt>{@link com.google.common.collect.ForwardingCollection } |
| * <dt>{@link com.google.common.collect.ForwardingConcurrentMap } |
| * <dt>{@link com.google.common.collect.ForwardingIterator } |
| * <dt>{@link com.google.common.collect.ForwardingList } |
| * <dt>{@link com.google.common.collect.ForwardingListIterator } |
| * <dt>{@link com.google.common.collect.ForwardingMap } |
| * <dt>{@link com.google.common.collect.ForwardingMapEntry } |
| * <dt>{@link com.google.common.collect.ForwardingMultimap } |
| * <dt>{@link com.google.common.collect.ForwardingMultiset } |
| * <dt>{@link com.google.common.collect.ForwardingObject } |
| * <dt>{@link com.google.common.collect.ForwardingQueue } |
| * <dt>{@link com.google.common.collect.ForwardingSet } |
| * <dt>{@link com.google.common.collect.ForwardingSortedMap } |
| * <dt>{@link com.google.common.collect.ForwardingSortedSet } |
| * </dl> |
| */ |
| @javax.annotation.ParametersAreNonnullByDefault |
| package com.google.common.collect; |