Package org.apache.tapestry5.commons.util

## Class CollectionFactory

- java.lang.Object
- - org.apache.tapestry5.commons.util.CollectionFactory

-     public final class CollectionFactory
      extends Object

  Static factory methods to ease the creation of new collection types (when using generics). Most of these method leverage the compiler's ability to match generic types by return value. Typical usage (with a static import):

       Map<Foo, Bar> map = newMap();

  This is a replacement for:

       Map<Foo, Bar> map = new HashMap<Foo, Bar>();

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CollectionFactory()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <V> Map<String,​V>` | `newCaseInsensitiveMap()` |
    `static <K,​V> ConcurrentMap<K,​V>` | `newConcurrentMap()` | Constructs a new concurrent map, which is safe to access via multiple threads.
    `static <T> LinkedList<T>` | `newLinkedList()` | Useful for queues.
    `static <T> List<T>` | `newList()` | Contructs and returns a new generic `ArrayList` instance.
    `static <T,​V extends T> List<T>` | `newList​(Collection<V> list)` | Constructs and returns a new `ArrayList` as a copy of the provided collection.
    `static <T,​V extends T> List<T>` | `newList​(V... elements)` | Creates a new, fully modifiable list from an initial set of elements.
    `static <K,​V> Map<K,​V>` | `newMap()` | Constructs and returns a generic `HashMap` instance.
    `static <K,​V> Map<K,​V>` | `newMap​(Map<? extends K,​? extends V> map)` | Constructs a new `HashMap` instance by copying an existing Map instance.
    `static <T> Set<T>` | `newSet()` | Constructs and returns a generic `HashSet` instance.
    `static <T,​V extends T> Set<T>` | `newSet​(Collection<V> values)` | Contructs a new `HashSet` and initializes it using the provided collection.
    `static <T,​V extends T> Set<T>` | `newSet​(V... values)` |
    `static <T> Stack<T>` | `newStack()` |
    `static <T> List<T>` | `newThreadSafeList()` | Constructs and returns a new `CopyOnWriteArrayList`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CollectionFactory

          public CollectionFactory()

  - ### Method Detail

    - #### newMap

          public static <K,​V> Map<K,​V> newMap()

      Constructs and returns a generic `HashMap` instance.

    - #### newSet

          public static <T> Set<T> newSet()

      Constructs and returns a generic `HashSet` instance.

    - #### newSet

          public static <T,​V extends T> Set<T> newSet​(Collection<V> values)

      Contructs a new `HashSet` and initializes it using the provided collection.

    - #### newSet

          public static <T,​V extends T> Set<T> newSet​(V... values)

    - #### newMap

          public static <K,​V> Map<K,​V> newMap​(Map<? extends K,​? extends V> map)

      Constructs a new `HashMap` instance by copying an existing Map instance.

    - #### newConcurrentMap

          public static <K,​V> ConcurrentMap<K,​V> newConcurrentMap()

      Constructs a new concurrent map, which is safe to access via multiple threads.

    - #### newList

          public static <T> List<T> newList()

      Contructs and returns a new generic `ArrayList` instance.

    - #### newList

          public static <T,​V extends T> List<T> newList​(V... elements)

      Creates a new, fully modifiable list from an initial set of elements.

    - #### newLinkedList

          public static <T> LinkedList<T> newLinkedList()

      Useful for queues.

    - #### newList

          public static <T,​V extends T> List<T> newList​(Collection<V> list)

      Constructs and returns a new `ArrayList` as a copy of the provided collection.

    - #### newThreadSafeList

          public static <T> List<T> newThreadSafeList()

      Constructs and returns a new `CopyOnWriteArrayList`.

    - #### newStack

          public static <T> Stack<T> newStack()

    - #### newCaseInsensitiveMap

          public static <V> Map<String,​V> newCaseInsensitiveMap()