Utility method for wrapping an object in a collection
java.util.Collections.singleton(object)
will give you an immutable Set
. singletonList
is also available.
Less efficiently java.util.Arrays.asList(object)
will give you a mutable (can use list.set(0, x);
), but non-structurally changeable (can't add or remove) List
. It is a bit more expensive as there is an extra array that is created client-side.
Immutable list in guava
public static <E> ImmutableList<E> of(E element)
Returns an immutable list containing a single element. This list behaves and performs comparably to Collections.singleton(T), but will not accept a null element. It is preferable mainly for consistency and maintainability of your code.
Here are some efficient ways to wrap Java object(s) in List, as of Java 8.
Collections.singletonList: Single item, immutable, since 1.3. Collections.singletonList( object )
High performance backed by internal class.
Collections.nCopies: One object, zero to many items, immutable, since 1.2. Collections.nCopies( number_of_copy, object )
High performance backed by internal class. All items point to same object.
Array.asList: Any number of objects, size immutable (individual elements mutable), since 1.2. Arrays.asList( object1, object2, object3 )
Backed by internal class. Items are converted to array at compile time and this array directly backs the List.
new ArrayList(Collection): Any number of objects, mutable, since 1.2new ArrayList<>( Arrays.asList( object1, object2, object3 ) )
The ArrayList is created with an array clone and an array copy, and so does not use any loops.