How to quickly and conveniently create a one element arraylist

arraylist, collections, java

Solution

Fixed size `List`

The easiest way, that I know of, is to create a fixed-size single element `List` with `Arrays.asList(T...)` like

// Returns a List backed by a varargs T.
return Arrays.asList(s);

Variable size `List`

If it needs vary in size you can construct an `ArrayList` and the fixed-size`List` like

return new ArrayList<String>(Arrays.asList(s));

and (in Java 7+) you can use the diamond operator `<>` to make it

return new ArrayList<>(Arrays.asList(s));

Single Element List

Collections can return a list with a single element with list being immutable:

Collections.singletonList(s)

The benefit here is IDEs code analysis doesn't warn about single element asList(..) calls.

Problem

Is there a Utility method somewhere that can do this in 1 line? I can't find it anywhere in `Collections`, or `List`. ``` public List<String> stringToOneElementList(String s) { List<String> list = new ArrayList<String>(); list.add(s); return list; } ``` I don't want to re-invent the wheel unless I plan on putting fancy rims on it. Well... the type can be `T`, and not `String`. but you get the point. (with all the null checking, safety checks...etc)

Original source

Related problems